中国科学技术大学吧 关注:193,996贴子:2,554,788
  • 35回复贴,共1

求助,这道题怎么做,欺负我数学不好

只看楼主收藏回复

发生一起案件,现场共有255人,其中有一名目击者和一名凶手。目击者知道凶手是谁。你每天可以盘问一次,每次可以从255人中挑选任意数量的人同时进行盘问。在盘问时普通人和凶手都不会说任何话,目击者会说出凶手是谁,但如果盘问的人里有凶手,他也不会说话。请问至少几天才能保证必然能找出凶手?


IP属地:上海来自Android客户端1楼2022-12-16 17:31回复
    🐭🐭不会,插个眼


    IP属地:安徽来自Android客户端2楼2022-12-16 17:43
    回复
      鼠鼠能想到16天的策略,不知道能不能更少


      IP属地:安徽来自Android客户端6楼2022-12-16 18:02
      收起回复
        前两次把人群分成2拨(凶手和目击者在同一波);再两次分为4拨;依次类推,最后分成了128拨,再问两次必有结果


        IP属地:安徽来自Android客户端7楼2022-12-16 18:06
        收起回复


          IP属地:安徽来自Android客户端8楼2022-12-16 18:30
          收起回复
            把256(题里是255个人,就当多加一个人)个人用二进制编号0000 0000~1111 1111编号,编号一共8位,那么凶手跟目击者的编号至少有一位是不一样的,第一次问编号第一位是0的人,第二次问编号第一位是1的人,第三次问编号第二位是0的人,第四次问编号第二位是1的人,以此类推第n次问编号第[n/2]是n mod 2的人,总共8位编号即问16次,必定有一次能问出来,我这个思路本质上跟6楼是一样的,就是表述不太一样


            IP属地:安徽来自Android客户端9楼2022-12-16 23:30
            收起回复
              楼中楼里回不了那么多字我就在这里说一下,昨天我的解法还是有点草率了,其实二进制并不是最优解,但是大体思路方向没错,这个问题本质上就是N个人有N个不同编号,要区分出两个不同的编号,可以把N进行质因数分解,设N=n1*n2*…*nk一共k个质因数,那么整个编号空间相当于一个k维方体,边长分别为n1~nk,每个编号对应一个k维坐标(x1,x2,…,xk),当然也可以用二进制的思想来理解这个编号,这个编号相当于一个变进制的数,最高位是n1进制,次高位是n2进制…以此类推,对于坐标中从左到右第i位,需要询问ni次,总共询问n1+n2+…+nk次,即可实现区分任意两个不同编号。而这个问题还不仅仅局限于此,虽然人数是给定的,但我们取编号的个数N是可以比人数多的,这里会涉及到两个新的问题,第一个问题是假设给定询问的次数,那么可以区分最多多少编号,假设询问次数n,编号为N,采用k进制,那么N=k^(n/k)=(k^(1/k))^n,即我们需要找到k^(1/k)的最大值,这个最大值在x=e处取到,考虑正整数的情况则是x=3,也就是说其实三进制是最优的,而非二进制,比方说在问6次的情况下,三进制能做到3*3=9,而二进制只能2*2*2=8,另一个问题是,即使知道了三进制是最优的,也不能所有数都无脑往三进制靠,而对于本身就能质因数分解的数,用其本身的质因数也不一定就是最优解,比方说14,如果直接质因数分解那就是2+7=9,如果往三进制靠则是3+3+3=9(3^3=27>14),而实际上最优解是3+5或者4+4(即2+2+2+2,二进制跟四进制的效率是一样的),所以还是得具体问题具体分析,暂时我是没找到一个适用任何数的最优通解,不过如N正好是3的整数次方,那三进制应该就是最优解了。


              IP属地:安徽来自Android客户端10楼2022-12-17 10:37
              回复
                kn完全有向图的有向二部覆盖?


                IP属地:安徽来自Android客户端11楼2022-12-17 14:04
                收起回复