魔法豌豆

来源:互联网 发布:山大网络教育平台 编辑:程序博客网 时间:2024/04/28 15:45

小仙女有N个袋子,每个袋子装无限豆。N-1个袋子的豌豆是普通豆,每粒重一克。有一个袋子装的是魔法豌豆,每个中两克。每次,小仙女可以从每个袋子里取出若干豌豆,然后放在一起称有多重。由于称坏了,不能正确称出大于1717克的东西,即使大于1717克,称量的结果仍是1717克(不过称不会损坏)。请帮她在10次称量找出装有魔法豌豆的袋子,并找到N的最大值。

解:我们可以从N个袋子中的1716个袋子里面每次取一颗,如果称量的值为1717克时,我们得到此次1716个袋子中某一袋装的是魔法豌豆。然后重复上面的操作K次(K<10),我们总能得到在某一次1716个袋子中可能存在一袋装的是魔法豌豆,否则则为剩下豌豆的袋数为M.。所以,我们可以得到N的最大值是N=K*1716+MK<10),那么我们怎么样才能确定这个K的最大值以及M的最大值。

首先,我们先确定下如果魔法豌豆在1716个袋子中某一袋需要找到魔法豌豆的次数。我们把袋子分成572573571袋三分,分别从每一份的袋子中取012颗,那么魔法豌豆称的可能重量分别是1715克,1716克,1717克。(K=K+1)

573=83×3+81×4,即把573个袋子分成7份,3份为83个袋子,4份为81个袋子。

83的袋子里面依次分别01281的袋子里面取3456颗。撑得的可能重量分别为1707170817091710171117121713克。(K=K+1)

83=2×40+3,分成41份,40份两袋和一份3袋。3袋取0颗,2袋每份取12。。。40,则撑得重量为16401641,。。。。1680克。(K=K+1)

3=3×1    (略)  K=K+1=10    那么我们容易得到1716个袋子我们需要4次,那么K的最大值为6.。那么N=1716×6+M=10296+M

我们知道如果M<=1716,那么上述依然成立,这时,我们取M=1716求得暂时的最大解,那么是不是可以让M取更大的值,并且依然可以在4次以内找到装有魔法豌豆的袋子呢,事实上是可以的。

以上述分袋求解过程来看,最后总是要剩余袋子把分成每份为一袋的,那么我们就有了一个反推的过程。我们假设有K个一份的袋子,那么每袋取值分别为012K-1,那么有取值在区间[(K-1)*K/2,(K-1)*K/2+K-1]内。容易求得K=58.(3次)

474=58×8+10,取0——8,得到范围为[1704,1711].(2次)

1519=474×3+97,取0——3,得到范围为[1713,1714,17151716](剩余一次)

M=1519×2+98=3136,取值012,得到范围为[1715,1716,1717]

最后得到Nmax=10296+3136=13432