12个乒乓球,有一个次品,不知轻重,用一台无砝码天平称三次,找出次品,告知轻重?

称球问题之十二个球有一个次品不知轻重三次称出 2.2.2、A1A2→坏在A12,由2.2知坏的轻→坏在A2。2.3.2、B1B2→坏在B12,由2.3知坏的重→坏在B1。3.2.2、B1B2→坏在B12,且由3知坏的轻→坏在B2。3.3.2、A1A2→坏在A12,且由3知坏的重→坏在A1。 阅读详情
AI摘要

博客围绕12个乒乓球中找次品的算法题展开。博主先分享自己分组称重找次品的失败思路,接着介绍别人的方法,最后给出AI答案,AI方法能在三次称重内准确找出次品并确定轻重,最后博主感慨算法题考验逻辑思维,要不断学习进步。

目录

前言

自己的思路(失败)

别人的方法

AI的答案

总结


前言

B站上看到个视频:为什么有人不认可清北的学生大多是智商高的?

然后试了下,发现我真菜

自己的思路(失败)

三次称重要获取到12个乒乓球中那个是次品,我想着将12个小球编号,分为四组,每组三个。

编号可以是:123456789abc,分组为123,456,789,abc

第一次称重123VS456,结果可能是平衡或者不平衡

平衡时就表示这六个是准的,次品在剩下六个789abc里面

不平衡就表示次品在123456里面。

以不平衡为例

第二次称重123VS789,789是正品,如果平衡则123也是正品次品在456里面,不平衡则次品在123里面。

这里以不平衡为例,则次品在123里面。

第三次称重,123里面拿两个,比如1VS2,平衡则3是次品,不平衡则次品在12里面。结合第一次称重结果,如果第一次是123轻则轻的是次品

上面以不平衡为例是可以查找到次品的,但是以平衡为例,则查找不到次品

以平衡为例

第二次称重123VS789,123是正品,如果平衡则789也是正品次品在9,10,11里面,不平衡则次品在789里面。

以平衡为例,则次品在9,10,11里面。

第三次称重,9,10,11里面拿两个,比如9VS10,平衡则11是次品,不平衡时因为第一二次都是平衡的不知道次品和正品的重量关系(轻还是重)此时判断不出来9,10那个是次品。

别人的方法

首先为球编号123456789abc
第一次1234对比5678
(1)若1234与5678不等重,则9abc排除嫌疑。
不妨设1234轻
   第二次125与489称
   (1.1)若125轻,则说明12轻或8重,此时称1与2即可
   (1.2)若489轻,则说明5重或4轻,此时称4与9或5与9即可
   (1.3)若等重,则说明3轻或67重,6与7称即可
(2)若1234与5678等重,则次品在9abc中。易得,略。

public class Test12 {
    public static void main(String[] args) {
        int[]weights0=new int[]{0,1,1,1,1,1,1,1,1,1,1,1};
        int[]weights1=new int[]{1,-1,1,1,1,1,1,1,1,1,1,1};
        int[]weights2=new int[]{1,1,2,1,1,1,1,1,1,1,1,1};
        int[]weights3=new int[]{1,1,1,3,1,1,1,1,1,1,1,1};
        int[]weights4=new int[]{1,1,1,1,4,1,1,1,1,1,1,1};
        int[]weights5=new int[]{1,1,1,1,1,5,1,1,1,1,1,1};
        int[]weights6=new int[]{1,1,1,1,1,1,6,1,1,1,1,1};
        int[]weights7=new int[]{1,1,1,1,1,1,1,7,1,1,1,1};
        int[]weights8=new int[]{1,1,1,1,1,1,1,1,8,1,1,1};
        int[]weights9=new int[]{1,1,1,1,1,1,1,1,1,9,1,1};
        int[]weights10=new int[]{1,1,1,1,1,1,1,1,1,1,10,1};
        int[]weights11=new int[]{1,1,1,1,1,1,1,1,1,1,1,11};
        System.out.println("weights0:"+checkWeights(weights0));
        System.out.println("weights1:"+checkWeights(weights1));
        System.out.println("weights2:"+checkWeights(weights2));
        System.out.println("weights3:"+checkWeights(weights3));
        System.out.println("weights4:"+checkWeights(weights4));
        System.out.println("weights5:"+checkWeights(weights5));
        System.out.println("weights6:"+checkWeights(weights6));
        System.out.println("weights7:"+checkWeights(weights7));
        System.out.println("weights8:"+checkWeights(weights8));
        System.out.println("weights9:"+checkWeights(weights9));
        System.out.println("weights10:"+checkWeights(weights10));
        System.out.println("weights11:"+checkWeights(weights11));
    }
    public static int  checkWeights(int[]weights) {
        //12个乒乓球重量数组,按数组位置分为0-11
        //第一次 0-3VS4-7
        int num11=weights[0]+weights[1]+weights[2]+weights[3];
        int num12=weights[4]+weights[5]+weights[6]+weights[7];
        if(num11==num12){
            //第一次平衡,次品在8-11里面,第二次称重正品组拿两个,比如0,1次品组拿两个比如8,9
            int num21=weights[0]+weights[1];
            int num22=weights[8]+weights[9];
            if(num21==num22){
                //第二次平衡,次品在10-11里面,第三次称重正品组拿一个,比如0次品组拿一个比如10
                int num31=weights[0];
                int num32=weights[10];
                if(num31==num32){
                    //第三次平衡,次品为11
                    return 11;
                }else{
                    //第三次不平衡,次品为10
                    return 10;
                }
            }else{
                //第二次不平衡,次品在8-9里面,第三次称重正品组拿一个,比如0次品组拿一个比如8
                int num31=weights[0];
                int num32=weights[8];
                if(num31==num32){
                    //第三次平衡,次品为9
                    return 9;
                }else{
                    //第三次不平衡,次品为8
                    return 8;
                }
            }

        }else{
            //第一次不平衡,次品在0-7里面,第二次称重则拿0,1,4和3,7,8
            int num21=weights[0]+weights[1]+weights[4];
            int num22=weights[3]+weights[7]+weights[8];
            if(num21==num22){
                //第二次平衡,次品在2和5,6里面,第三次称重5,6
                int num31=weights[5];
                int num32=weights[6];
                //需要和第一次称重结合分析
                if(num31==num32){
                    //第三次平衡,则2是次品
                    return 2;
                }else if(num31<num32){
                    //第三次不平衡,5轻,如果第一次0-3轻,则6是次品否则5是次品
                    if(num11<num12){
                        return 6;
                    }else {
                        return 5;
                    }
                }else{
                    //第三次不平衡,6轻,如果第一次0-3轻,则5是次品否则6是次品
                    if(num11<num12){
                        return 5;
                    }else {
                        return 6;
                    }
                }
            }else if(num21<num22){
                //第二次不平衡,0,1,4小于3,7,8 需要和第一次称重结合分析
                if(num11<num12){
                    //第一次0-3轻,次品在0,1和7里面,第三次称重0,1
                    int num31=weights[0];
                    int num32=weights[1];
                    if(num31==num32){
                        //第三次平衡,则7是次品
                        return 7;
                    }else {
                        if(num31<num32){
                            //第三次不平衡,0轻,第一次0-3轻,则0是次品
                           return 0;
                        }else{
                            //第三次不平衡,1轻,第一次0-3轻,则1是次品
                            return 1;
                        }
                    }
                }else{
                    //第一次0-3重,次品在3和4里面,第三次称重0,3
                    int num31=weights[0];
                    int num32=weights[3];
                    if(num31==num32){
                        //第三次平衡,则4是次品
                        return 4;
                    }else {
                        //第三次不平衡,则3是次品
                        return 3;
                    }
                }
            }else{
                //第二次不平衡,0,1,4大于3,7,8 需要和第一次称重结合分析
                if(num11<num12){
                    //第一次0-3轻,次品在3和4里面,第三次称重0,3
                    int num31=weights[0];
                    int num32=weights[3];
                    if(num31==num32){
                        //第三次平衡,则4是次品
                        return 4;
                    }else {
                        //第三次不平衡,则3是次品
                        return 3;
                    }
                }else{
                    //第一次0-3重,次品在0,1和7里面,第三次称重0,1
                    int num31=weights[0];
                    int num32=weights[1];
                    if(num31==num32){
                        //第三次平衡,则7是次品
                        return 7;
                    }else {
                        if(num31<num32){
                            //第三次不平衡,0轻,第一次0-3重,则1是次品
                            return 1;
                        }else{
                            //第三次不平衡,1轻,第一次0-3重,则0是次品
                            return 0;
                        }
                    }
                }
            }

        }
    }
}

测试结果

weights0:0
weights1:1
weights2:2
weights3:3
weights4:4
weights5:5
weights6:6
weights7:7
weights8:8
weights9:9
weights10:10
weights11:11

AI的答案

步骤1:将12个乒乓球分为三组,每组4个,分别标记为A、B、C。

第一次称重:取A组和B组进行称重。

  • 情况A:如果两边平衡,那么次品在C组中。
  • 情况B:如果两边不平衡,假设A组重,那么次品有两种可能:
    • 可能1:次品在A组中(且更重)。
    • 可能2:次品在B组中(且更轻)。

步骤2:

  • 如果第一次称重是情况A(A组和B组平衡):
    • 将C组的乒乓球分为两组,每组2个,分别标记为C1和C2。将C1放在天平的左边,从A组(或B组,因为它们是正常的)取2个乒乓球放在天平的右边进行称重。
      • 情况A1:如果平衡,次品在C2中。
      • 情况A2:如果不平衡,次品在C1中,并且可以直接通过比较确定它是更重还是更轻。
  • 如果第一次称重是情况B(A组和B组不平衡):
    • 将A组的乒乓球分为两组,每组2个,分别标记为A1和A2。将B组的乒乓球也分为两组,第一组1个和剩下的3个,分别标记为B1(1个)和B2(3个)。进行以下称重:将A1和B1放在天平左边,A2和1个正常乒乓球(来自C组已知正常的)放在天平右边。
      • 情况B1:如果平衡,次品在B2中,且更轻。
      • 情况B2:如果不平衡,则有两种可能性:
        • 可能性B2.1:如果左边重(即A1和B1重),那么次品有两种可能:A1中更重的一个,或者B1中更轻的一个(因为假设A组整体更重,所以B1更轻)。
        • 可能性B2.2:如果右边重(即A2和正常乒乓球重),那么次品在A2中,且更重。

步骤3:

  • 如果第二次称重是情况A1(次品在C2中):取C2中的两个乒乓球进行称重,即可确定哪个是次品,并判断其轻重。
  • 如果第二次称重是情况B1(次品在B2中):取B2中的两个乒乓球进行称重,轻的一个即为次品。
  • 如果第二次称重是情况B2(次品在A1或B1或A2中):
    • 如果可能性B2.1(A1中更重的一个,或者B1中更轻的一个):取A1中的两个乒乓球进行称重,重的一个即为次品;如果A1中两个乒乓球平衡,则B1为次品且更轻。
    • 如果可能性B2.2(次品在A2中):A2中的两个乒乓球进行称重,重的一个即为次品。

通过这种方法,我们可以在三次称重内准确地找出次品,并确定其轻重。

AI的逻辑基本可以理解,但是略显混乱。整体上和上面的方法一样

代码

public class Test12 {
    public static void main(String[] args) {
        int[]weights0=new int[]{0,1,1,1,1,1,1,1,1,1,1,1};
        int[]weights1=new int[]{1,-1,1,1,1,1,1,1,1,1,1,1};
        int[]weights2=new int[]{1,1,2,1,1,1,1,1,1,1,1,1};
        int[]weights3=new int[]{1,1,1,3,1,1,1,1,1,1,1,1};
        int[]weights4=new int[]{1,1,1,1,4,1,1,1,1,1,1,1};
        int[]weights5=new int[]{1,1,1,1,1,5,1,1,1,1,1,1};
        int[]weights6=new int[]{1,1,1,1,1,1,6,1,1,1,1,1};
        int[]weights7=new int[]{1,1,1,1,1,1,1,7,1,1,1,1};
        int[]weights8=new int[]{1,1,1,1,1,1,1,1,8,1,1,1};
        int[]weights9=new int[]{1,1,1,1,1,1,1,1,1,9,1,1};
        int[]weights10=new int[]{1,1,1,1,1,1,1,1,1,1,10,1};
        int[]weights11=new int[]{1,1,1,1,1,1,1,1,1,1,1,11};
        System.out.println("weights0:"+checkWeights(weights0));
        System.out.println("weights1:"+checkWeights(weights1));
        System.out.println("weights2:"+checkWeights(weights2));
        System.out.println("weights3:"+checkWeights(weights3));
        System.out.println("weights4:"+checkWeights(weights4));
        System.out.println("weights5:"+checkWeights(weights5));
        System.out.println("weights6:"+checkWeights(weights6));
        System.out.println("weights7:"+checkWeights(weights7));
        System.out.println("weights8:"+checkWeights(weights8));
        System.out.println("weights9:"+checkWeights(weights9));
        System.out.println("weights10:"+checkWeights(weights10));
        System.out.println("weights11:"+checkWeights(weights11));
    }


    public static int  checkWeights(int[]weights) {
        //12个乒乓球重量数组,按数组位置分为0-11
        //第一次 0-3VS4-7
        int num11=weights[0]+weights[1]+weights[2]+weights[3];
        int num12=weights[4]+weights[5]+weights[6]+weights[7];
        if(num11==num12){
            //第一次平衡,次品在8-11里面,第二次称重正品组拿两个,比如0,1次品组拿两个比如8,9
            int num21=weights[0]+weights[1];
            int num22=weights[8]+weights[9];
            if(num21==num22){
                //第二次平衡,次品在10-11里面,第三次称重正品组拿一个,比如0次品组拿一个比如10
                int num31=weights[0];
                int num32=weights[10];
                if(num31==num32){
                    //第三次平衡,次品为11
                    return 11;
                }else{
                    //第三次不平衡,次品为10
                    return 10;
                }
            }else{
                //第二次不平衡,次品在8-9里面,第三次称重正品组拿一个,比如0次品组拿一个比如8
                int num31=weights[0];
                int num32=weights[8];
                if(num31==num32){
                    //第三次平衡,次品为9
                    return 9;
                }else{
                    //第三次不平衡,次品为8
                    return 8;
                }
            }

        }else{
            //第一次不平衡,次品在0-7里面,第二次称重则拿0,1,4和2,3,8
            int num21=weights[0]+weights[1]+weights[4];
            int num22=weights[2]+weights[3]+weights[8];
            if(num21==num22){
                //第二次平衡,次品在5,6,7里面,第三次称重5,6
                int num31=weights[5];
                int num32=weights[6];
                //需要和第一次称重结合分析
                if(num31==num32){
                    //第三次平衡,则7是次品
                    return 7;
                }else if(num31<num32){
                    //第三次不平衡,5轻,如果第一次0-3轻,则6是次品否则5是次品
                    if(num11<num12){
                        return 6;
                    }else {
                        return 5;
                    }
                }else{
                    //第三次不平衡,6轻,如果第一次0-3轻,则5是次品否则6是次品
                    if(num11<num12){
                        return 5;
                    }else {
                        return 6;
                    }
                }
            }else if(num21<num22){
                //第二次不平衡,0,1,4小于2,3,8 需要和第一次称重结合分析
                if(num11<num12){
                    //第一次0-3轻,次品在0,1里面,第三次称重0,8
                    int num31=weights[0];
                    int num32=weights[8];
                    if(num31==num32){
                        //第三次平衡,则1是次品
                        return 1;
                    }else {
                        //第三次不平衡,则0是次品
                        return 0;
                    }
                }else{
                    //第一次0-3重,次品在2,3,4里面,第三次称重2,3
                    int num31=weights[2];
                    int num32=weights[3];
                    if(num31==num32){
                        //第三次平衡,则3是次品
                        return 4;
                    }else if(num31>num32){
                        //第三次不平衡,2重,则2是次品
                        return 2;
                    }else{
                        //第三次不平衡,2轻,则3是次品
                        return 3;
                    }
                }
            }else{
                //第二次不平衡,0,1,4大于2,3,8 需要和第一次称重结合分析
                if(num11<num12){
                    //第一次0-3轻,次品在2,3,4里面,第三次称重2,3
                    int num31=weights[2];
                    int num32=weights[3];
                    if(num31==num32){
                        //第三次平衡,则3是次品
                        return 4;
                    }else if(num31>num32){
                        //第三次不平衡,2重,则3是次品
                        return 3;
                    }else{
                        //第三次不平衡,2轻,则2是次品
                        return 2;
                    }
                }else{
                    //第一次0-3重,次品在0,1里面,第三次称重0,8
                    int num31=weights[0];
                    int num32=weights[8];
                    if(num31==num32){
                        //第三次平衡,则1是次品
                        return 1;
                    }else {
                        //第三次不平衡,则0是次品
                        return 0;
                    }
                }
            }

        }
    }
}

总结

算法题考察的是大家的逻辑思维能力,看来自己还是太菜了。学习不思则罔,思而不学则殆。学无止境,要不断学习进步!

T265摄像头插着开机后,需要重新插拔才能正常启动 阅读详情

相关推荐

wpa_supplicant EAPOL状态机分析

wpa_supplicant EAPOL状态机分析

加油鸭 1476

Google面试题原理解析 12个乒乓球其中有1个次品,用天平称重3次找出

在12个小球里有一个次品,重量与其他11个球不同。用一个没有砝码的天平,称3次,保证找到那个次品,并且区分出次品是轻还是重呢?”这个问题看似简单,做起来还真不容易。误区也许有人说我可以用二分法,先把球均分成两堆,上天平比较,找到重的一堆,次品就在这里。再把重的一堆均分成两堆,上天平比较…这样,每次就能把球去掉一半,就能最快找到次品啦!这样子会很慢。...

AI架构师易筋 1万+

DAIC-WOZ抑郁数据集实战:从申请到特征提取的全流程避坑指南

本文详细解析了DAIC-WOZ抑郁数据集从申请到特征提取的全流程,提供了实用的避坑指南和代码模板。涵盖数据获取技巧、多模态特征工程(面部动作单元、音频特征、文本处理)以及样本不平衡解决方案,帮助研究者高效处理这一经典抑郁分析数据集。

weixin_29196315的博客 172

12个乒乓球称重问题

问题: 有12个乒乓球,其中有一个次品,不知道轻重,用一台无砝码天平称三次,找出次品并告知轻重,怎么称? 解答: 先分3组,每组4个,随便拿两组来称第一次: 情况1:天平平衡, 则在剩下的4个球里,从4个中选3个,再加1个标准球, 进行第二次称量: 情况1.1 如果平衡,拿标准球跟最后一个球称就可以知道答案 情况1.2 如果不平衡,选2个待测球那边的两个球称一下。 情况1.2.1 天平如果平衡,则可以知道是没选上的那个球,是劣质品,而且在第二轮称量就知道了其是轻是重 情况1.2.2 如果天平

qq_38307618的博客 1万+

神联动:LSTM+卡尔曼滤波!一区大门轻松开!

近来热度飙升,成为时间序列预测和状态估计等领域的香饽饽,非常好发高区!主要在于:这两者结合,不仅能提高模型预测准确性;还能拓展应用场景,为我们的论文创新提供发挥空间,且当下还在蓝海阶段,还不算卷。具体点说:卡尔曼滤波擅长处理线性状态估计和噪声,能使LSTM更好地适应动态环境的变化,减少噪声干扰,降低预测误差。而LSTM通过捕捉长期依赖关系,擅长处理非线性时间序列,能够弥补卡尔曼滤波在这方面的不足,从而把应用场景从传统的状态估计,延伸到金融预测、工业检测、自动驾驶等任务。

2401_82426425的博客 2208

KEIL5编译报错L6200E:__stdout重定义问题分析与解决

本文深入分析KEIL5编译报错L6200E中__stdout重定义问题的根源,指出因未完整定义__stderr导致与标准库stdio_streams.o冲突。提供完整重定义标准流、启用MicroLIB库等解决方案,帮助开发者彻底解决Symbol multiply defined错误,提升嵌入式开发效率。

uran的专栏 954

12个小球中有一个次品,次品轻重未知。用无砝码天平测量,三次机会,找出次品

12个球(1个次品),一个天平(无砝码),三次机会,次品重量未知,如何找出次品

CAN的博客 3947

Android以太网开关流程分析

Android以太网开关流程分析 一、引言   在Android 以太网服务启动流程中我们启动了EthernetService(ES),NetworkManagementService(NMS)等服务,其中ES作为Binder的服务端,向客户端EthernetManger提供了调用接口的引用。因此,应用可以通过EthernetManger来访问以太网的相关接口。本篇文章将从APP调用以太网的使能和关闭的接口流程作为切入点来分析,以太网框架中,上层app是如何将指令传递到底层。图1-1所示为以太网使能和关闭

franc521的博客 6113

数学杂谈:残次品的无砝码天平定位问题

数学杂谈:残次品的无砝码天平定位问题

codename_cys的博客 2277

秃鹰搜索优化算法(BES)详解:从自然捕食到全局优化

秃鹰搜索优化算法(Bald Eagle Search Optimization Algorithm,BES)是由马来西亚学者Alsattar等人于2020年提出的一种新型元启发式优化算法。该算法灵感来源于秃鹰在自然界中高超的捕食行为,特别是其独特的狩猎策略和卓越的视觉搜索能力,模拟了秃鹰捕食鲑鱼等猎物的完整过程。

qq_42212808的博客 1352

PCL 基于视椎体裁剪点云

PCL 基于视椎体裁剪点云

dayuhaitang1的博客 4083

[分析]12个乒乓球问题

[分析]12个乒乓球问题第一个题目:题目内容是:有十二个乒乓球外观相同,其中有且只有一个乒乓球其重量比别的球轻,现在要求用一架没有砝码的天平称三次,将那个重量轻的球找出来。答题限制时间:10分钟。     第二个题目:题目内容是:有十二个乒乓球外观相同,其中有且只有一个乒乓球重量异常,现在要求用一架没有砝码的天平称三次,将那个重量异常的球找出来(不要求一定要知道比别的球重还是轻)。答题限制时间

智造编程 2794

百度AI架构师亲授:Agentic智能体在教育领域的落地(附个性化学习案例)

当我们谈论“教育智能化”时,我们真正需要的不是“更聪明的工具”,而是“能懂人的伙伴”——一个能像优秀教师那样主动观察、精准判断、动态调整的“数字助手”。Agentic智能体(智能体)正是这样的存在:它具备“自主性”(主动决策)、“反应性”(感知环境)、“目标导向”(聚焦学习目标)和“社会性”(与人/其他智能体协作),完美匹配教育场景中“个性化、动态化、协同化”的核心需求。本文将从底层逻辑到工程实现为什么Agentic是教育AI的“下一站”?(痛点与价值)Agentic智能体的核心架构是什么?

AI天才研究院 356

12个乒乓球称重3次寻找次品的计算题,可真是难为我了

这是学习笔记的第2350篇文章 前几天在地铁上看到一道题:12个乒乓球,一个次品,用无砝码天平称三次,找出次品。 按照标准的二分法其实次数应该是比3次多的,所以这是一道蛮有意...

杨建荣的学习笔记 2841

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

使用天平只用3次求出12个球中的次品球并确认轻重

问题描述 有12个外观完全一样的球,其中有一个是次品球,质量与其他11质量不同。现要给你一台天平,你可否只用三次称量就找出这个球,并说明这个球比其他球重还是轻。 解法步骤 为了方便说明,首先将这12个球进行编号:1,2,3,…,11,12。然后对其进行分组,A[1,2,3,4], B[5,6,7,8], C[9,10,11,12],要查找的次品球称为目标球,其他的球称为普通球,称重函数为W,如对A...

郝伟老师的博客——大数据、并行计算与人工智能时代 4205

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

一道智力题:有12个乒乓球,其中有一个不合规格,但不知是轻是重。要求用天平称三次,把这个坏球找出来。

题目:有12个乒乓球,其中有一个不合规格,但不知是轻是重。要求用天平称三次,把这个坏球找出来。 方法:每个球用1-12的数字做标记第一次称:1 2 3 4 Vs 5 6 7 8将出现三种可能性 ①、1 2 3 4 > 5 6 7 8②、1 2 3 4 = 5 6 7 8③、1 2 3 4 第二次称:2 5 8 11 Vs 3 6 9 12A、2 5 8 11 > 3 6 9

墨竹 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

12个乒乓球,其中一个质量异常,用一部没有砝码刻度的天平秤量三次,找出是哪一个质量异常,轻了还是重了?

下面给出一种经典的解法步骤。为方便说明,先给 12 个球做编号:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12。我们只用三次称量(无砝码刻度的天平),既要确定“哪一个球”是异常的,也要知道“它是偏重还是偏轻”。核心思路是:每次称量都要合理安排对比分组,使得每一次称量的结果(左重、右重、还是平衡)都能最大限度地区分不同的可能性。

程序认生 1575

无砝码天平

第一次,先将1-4号放在左边,5-8号放在右边。  1.如果天平平衡,则坏球在9-12号。  第二次将1-3号放在左边,9-11号放在右边。  1.如果右重则坏球在9-11号且坏球较重。  第三次将9号放在左边,10号放在右边。  1.如果右重则10号是坏球且比标准球重;  2.如果平衡则11号是坏球且比标准球重;  3.如果左重则9号是坏球且比标准球重。  2.如果平衡则坏球为1

liuenyi2007的专栏 3071

Q&A - 有十二个乒乓球形状、大小相同,其中只有一个重量与其它十一个不同,现在要求用一部没有砝码的天秤称三次,将那个重量异常的球找出来,并且要得出它比其它十一个球较重还是较轻

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 首先,把十二个小球平均分成三等份,每份四个。拿出其中任意两份放到天秤两端称(第一次),那么会出现以下两种情况: 情况1:天秤是平衡的。那么八个在天秤上的球都是正常的,异常的球在剩下的四个里面。从剩下的四个球中任意拿出三个放到天秤的任意一边,另一边...

了解➔熟悉➔掌握➔精通 3万+

不错的面试题(12个乒乓球)

有12个乒乓球特征相同,其中只有一个重量异常,现在要求用一部没有砝码的天平称三次,将那个重量异常的球找出来。评分标准: 1.30分钟以内做出来:智力很高很高很高,不知道有多高...... 2.60分钟以内做出来:智力很高。 3.两小时内做出来:智力相当高。 4.1天或者1周内做出来:智力也很高,而且还是一个有毅力的人。 5.10分钟内做出来:你或者以前做过,或者多半是个马虎的人,蒙对了。答案先将乒

红羊家园 3066

12个小球称三次c语言,12个乒乓球称3次,分出轻重.我觉得不设条件是重是轻是无解的!完整题目如下:有十二个乒乓球形状、大小相同,其中只有一个重量与其它十一个不同,现在要求用一部没有砝码的天秤称三次,...

问题描述:12个乒乓球称3次,分出轻重.我觉得不设条件是重是轻是无解的!完整题目如下:有十二个乒乓球形状、大小相同,其中只有一个重量与其它十一个不同,现在要求用一部没有砝码的天秤称三次,将那个重量异常的球找出来,并且知道它比其它十一个球较重还是较轻.我觉得这个题目是无解的在不设立条前的前提下,麻烦据有非凡智力的大侠帮忙解除以后.先用分3份方案来解.设1-12个球,第一组(1-4),第二组(5-8)...

weixin_31548723的博客 495

12个乒乓球 找出有重量异常的一个乒乓球

有12个乒乓球特征相同,其中只有一个重量异常,现在要求用一部没有砝码的天平称三次,将那个重量异常的球找出来。  评分标准:   1.30分钟以内做出来:智力很高很高很高,不知道有多高......   2.60分钟以内做出来:智力很高。   3.两小时内做出来:智力相当高。   4.1天或者1周内做出来:智力也很高,而且还是一个有毅力的人。   5.10分钟内做出来:你或者以前做过,或者多半是个马虎

givemefive888的专栏 3960

今天讲点算法逻辑来 分享一下十二个乒乓球 不知轻重三步求解的思路

第三步 A里面随机抽两个 比较 相等就是另一个错了 刚刚是<或者>就说明错的小或者大 不想等就看刚刚a1-3比c1-6 /2 小还是大 小还是大的那个是错的。第一步 不相等 知道九个不确定和三个对的(B1-3就是对的) 而且我们也可以知道 A1-3 *2 <还是> C1-6。第二步不相等 a1-3是对的 看刚刚是<还是> 符合条件的一遍就是错的。不相等 我们就知道错的是轻还是重。我们三堆分别命名为 A1-3 B1-3 C1-6。第二步 C1-3比C4-6。第二步相等 A1-3是错的。

2301_79474242的博客 558

12只乒乓球

继续简单智力题: 有12只乒乓球,其中有一只是次品,次品和正常的乒乓球外观相同,仅重量有差别,可能比正常的轻,也可能比正常的重,现在有一个天平,求3次称出那只次品的方法。 目前想到的答案: 为方便说明,将乒乓球按照1-12编号。 第一步,将乒乓球分成3组,每组4只,例如(1,2,3,4),(5,6,7,8),(9,10,11,12),把第一组和第二组放上去称,可能会有3中结果:第1组比较重

破东风 1737

12个乒乓球的问题

有12个兵乓球特征相同,其中只有一个重量异常,现在要求用一部没有砝码的天平称三次,将那个重量异常的球找出来。答案: 分为三组:(1)(2)(3)(4),(5)(6)(7)(8),(9)(10)(11)(12) 第一次称两组:左⑴⑵⑶⑷,右⑸⑹⑺⑻        如果平,则在⑼⑽⑾⑿中,第二次,⑴⑵:⑼⑽,确定在⑼⑽中还是在⑾⑿中,从而符合第二假设,第三次即可确定.       

如果你知道去哪里,全世界都会为你让路 1021

十二个球称三次C语言编程,经典智力题 12个球称3次,分出并判断异常球

经典智力题十二个乒乓球称重三次有十二个大小、形状都相同的乒乓球,要求用没砝码的天秤称三次,找出其中唯一的异常球,并且知道它是重了还是轻了。1精彩内容,尽在百度攻略:https://gl.baidu.com①②③④ ⑤⑥⑦⑧ ⑨⑩⑾⑿1.1 平 ①②③ ⑨⑩⑾ ⑿1.1.1精彩内容,尽在百度攻略:https://gl.baidu.com1.1.1.1 1.1.1.2平 ...

weixin_36216860的博客 732
上一篇: 接口数据脱敏实现方案
下一篇: mysql压缩文件包安装(windows)
bxp1321
博客等级 码龄17年 146粉丝 86原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值