没有奶牛的二元公牛

以下是公牛和奶牛问题出现在2008年秋季城镇锦标赛上:

一个测试由30个正确或错误的问题组成。测试结束后(回答了所有30个问题),维克多得到了分数:正确答案的数量。维克多不知道答案,但被允许参加多次相同的测试。维克多能想出一个策略来保证他能在第29次尝试后找出所有答案吗?在第24次尝试之后?

让我们假设我们有一个更普遍的问题。n个问题,以及a(n)是我们需要进行测试以确保能够找出答案的最小次数。首先,我们可以尝试所有答案的组合。这样我们就可以保证在2之后知道所有答案n个尝试。下一个想法是从基线测试开始,例如,说所有答案都是正确的。然后我们逐个改变答案,看看分数是上升还是下降。更改后n个−1个答案,我们将知道第一个答案n个−1个问题。另外,我们知道真实答案的总数,所以我们知道所有问题的答案。我们刚刚展示了a(n)n个.

这不足以回答问题中的预热问题。我们需要一些更微妙的东西。

让我们谈谈问题的第二部分。正如我们所知,24=4●6。所以要解决第二部分,平均来说,我们需要每四次测试找到五个正确答案。这是真的吗a(5)≤4?如果是这样,我们可以用它来证明吗a(30)≤ 24?

以下三个案例是最有趣的证明:a(5)= 4,a(8)≤6,以及a(30)≤ 24. 试试看!

顺便说一下,K.Knop和L.Mednikov写了一篇论文(俄语版本)他们证明了这一点a(n)不超过最小值k个这样,从1到k个至少是n个− 1. 这意味着他们证明了a(30)≤ 16.

共享:脸谱网推特红色编辑品脱师链接(linkedin)邮件

14条评论

  1. 萨尔:

    a(5)=4
    怎么可能呢?正确答案有32种可能性,得分只有24种可能性(每次0到5个正确答案)

  2. 萨尔:

    soory,错了,分数有6^4的可能性

  3. Animesh公司:

    这个让我思考了一天…。。我的大脑在腐烂…我想…

    无论如何,这是我的解决方案,让我们考虑一个非常简单的情况,其中正确答案是0 1 0(0=F,1=T,所以很容易考虑……i luv数字!)

    如果我尝试0 0,我会得到2分,并且自动知道如果我输入1 1 1,我会获得3–2=1分
    接下来,如果我尝试0 0 1,我会得到分数=1,所以我知道1 1 0分=2。这些知识足以得出解决方案。

    选择两个得分相同的解决方案,它们分别是0 0 0和1 1 0
    假设解为0 0 0->不可能,因为第一个解会给出结果3
    下一个可能性=0 0 1->再次不可能,因为它给出了结果
    0 0 0 xor 0 0 1=1 1 0或2 1,因此2个正确答案
    1 1 0 xor 0 0 1=0 0 0或0 0,因此没有正确答案

    所以我们知道0 0 1不是解决方案,
    如果我们尝试1 0 0,则0 0 0 xor 1 0 0=>0 1 1或2 1的
    1 1 0 xor 1 0 0=1 0 1或2 1
    所以1 0 0可以是一个解,类似地,我发现0 1 0可以是解。没有其他可能的解决方案
    1 0 0和0 1 0可以再次通过第二个解决方案集进行验证
    1 1 1和0 0 1都得1分。因此,如果不进行更多的测试,我知道在两个测试中,解是0 1 0或F T F。

    如果有一个更简单的…请让我知道…
    因此,对于一个三题测试,它可以用三个问题来解决,这更复杂,但我想可以应用类似的逻辑。

  4. 萨尔:

    到animesh
    苏里,你错了。如果正确答案是100,你会得到相同的结果,你怎么知道它是010而不是100?

  5. Animesh公司:

    @萨尔

    再读一遍我写的东西。我从来没有说过正确的答案是“0 1 0”,我只是做了一个假设。在我选择其中一个解决方案之前无法解释策略。该策略也适用于10 0…。。

    假设解是1 0 0,0 0 0会给2分,所以我自动知道1 1 1(前一个补码)会给1分。

    0 0 1将得到1分,因此comlement 1 1将得到2分。

    使用这些结果,然后应用类似的分析,我可以将注意力集中在解决方案上。

  6. 萨尔:

    对不起,我不明白。请再解释一下,你如何在两次中知道哪个答案是正确的。uf u在第一次和第二次测试中得到了相同的结果“我们如何在两种可能性之间进行distugwish?”?

  7. 帕辛:

    这只是主脑,在允许多重性的地方有两种颜色。
    https://en.wikipedia.org/wiki/Mastermind_%28board_game%29

  8. 萨尔:

    塔尼亚,我们正在等你的回答,请快点

  9. 假名:

    快速信息理论论证。你需要找到n位信息。每次尝试测试最多可以获得1g n位的信息(所有对数都以2为基数)。因此:

    a(n)≥n/lg n

    特别地:

    a(5)≥3
    a(8)≥4
    a(30)≥6

    这可能不是一个非常严格的下限,但它仍然是一个下限。

    猜测:对于一个有n道题的测试,如果在每个阶段你都需要提交一个答案与之前所有分数一致的测试,你需要参加n次测试来确定所有答案是什么。

    现在,如果你必须提前提交所有测试,因此无法使用之前测试的结果来确定下一次测试的答案,该怎么办?

  10. 假名:

    saar,这里有一个针对n=5的策略。我使用的符号是,提交看起来像[0,1,1,0,1],其中0表示此问题的答案为“假”,1表示答案为“真”。

    该策略在以下意义上是“最佳”的:

    –树在树的最大深度上是最小的(即知道答案所需的试验次数)。
    –如果有几棵树在上述属性中是最优的,则树的平均深度最小。
    –如果有几棵树在上述属性中是最优的,请尽可能频繁地提交正确的答案。

    我希望这个格式正确。

    尝试[0,0,0,0]。如果分数为:
    0→答案是[1,1,1,1]。
    1→尝试[0,0,0,1,1]。如果分数为:
    1→尝试[1,1,1,0,1]。如果分数为:
    3→答案是[1,1,1,0]。
    5→答案是[1,1,1,0,1]。
    3→尝试[0,1,1,1]。如果分数为:
    3→尝试[1,0,1,1]。如果分数为:
    3→答案是[1,1,0,1,1]。
    5→答案是[1,0,1,1]。
    5→答案是[0,1,1,1]。
    2→尝试[0,0,1,1]。如果分数为:
    1→尝试[1,1,0,0,1]。如果分数为:
    3→尝试[1,1,0,1,0]。如果分数为:
    3→答案是[1,1,1,0,0]。
    5→答案是[1,1,0,1,0]。
    5→答案是[1,1,0,0,1]。
    3→尝试[0,1,0,1,1]。如果分数为:
    1→尝试[1,0,1,0,1]。如果分数为:
    3→答案是[1,0,1,1,0]。
    5→答案是[1,0,1,0,1]。
    3→尝试[0,1,1,0,1]。如果分数为:
    1→答案是[1,0,0,1,1]。
    3→答案是[0,1,1,0]。
    5→答案是[0,1,1,0,1]。
    5→答案是[0,1,0,1,1]。
    5→答案是[0,0,1,1]。
    3→尝试[0,0,0,1,1]。如果分数为:
    1→尝试[0,1,0,0]。如果分数为:
    3→尝试[1,0,1,0,0]。如果分数为:
    3→答案是[1,1,0,0,0]。
    5→答案是[1,0,1,0,0]。
    5→答案是[0,1,1,0,0]。
    3→尝试[0,0,1,0,1]。如果分数为:
    1→尝试[0,1,0,1,0]。如果分数为:
    3→答案是[1,0,0,1,0]。
    5→答案是[0,1,0,1,0]。
    3→尝试[0,1,0,0,1]。如果分数为:
    1→答案是[0,0,1,1,0]。
    3→答案是[1,0,0,01]。
    5→答案是[0,1,0,0,1]。
    5→答案是[0,0,1,0,1]。
    5→答案是[0,0,0,1,1]。
    4→尝试[0,0,0,1,1]。如果分数为:
    2→尝试[0,0,1,0,0]。如果分数为:
    3→尝试[0,1,0,0,0]。如果分数为:
    3→答案是[1,0,0,0-0]。
    5→答案是[0,1,0,0,0]。
    5→答案是[0,0,1,0,0]。
    4→尝试[0,0,0,1]。如果分数为:
    3→答案是[0,0,0,1,0]。
    5→答案是[0,0,0,1]。
    5→答案是[0,0,0,0,0,0]。

  11. 萨尔:

    嗯,看起来不错,但我需要更深入地检查。
    非常非常感谢

  12. 索拉夫:

    对于第一部分,
    为什么最小数等于n-1,

    应该是n吗

  13. Tanya Khovanova的数学博客»博客档案»二进制牛解释:

    〔…〕最近发表了一篇文章《没有奶牛的二进制公牛》,其中有以下谜题:维克多正在进行的测试由n个“真”或〔…〕组成

  14. 亚历杭德罗:

    你好,我每天都在看你的新东西。
    啊,我们的幽默作家一定是个了不起的人!

留下评论