阅读:3421回复:44
一个逻辑推理题,挺有意思的
一种石头,在某一高度扔下就会碎,在这个高度以下不会碎,高度以上一定碎 现在有4个石头,1000层的楼房,需要测定这个石头破碎的高度 求最少多少次一定可以测出来
|
|
沙发#
发布于:2002-10-23 19:05
谢谢!谢谢!!谢谢!!!只要有分我就高兴。 |
|
|
板凳#
发布于:2002-10-23 13:46
[quote]我觉的这个解法有问题: 可你好象用了四块石头. X(4,5) = 30 > 21; 另: 几时按\"改分\"将问题分数改为200分再放给我??? :D :D :D [/quote] 使我范傻了 :) :), 分已经给你拉,不过我很穷的,系统也只让我给你这么多分,看你答的这么辛苦,想多给你它也不让啊 :D :D :D |
|
地板#
发布于:2002-10-23 11:27
第一块石头从501层扔。 你知道个p,我以到过1000楼了,还没碎呢!! :mad: :mad: :mad: :P |
|
|
地下室#
发布于:2002-10-23 11:21
第一块石头从501层扔。
如果碎了,第二块从第251层扔;否则从751层扔。(扔第一块石头,如果你有劲下500层楼拿。 :)) 第三次从126层或376或626或876层扔。 第四次依次从下往上试,最多试124次。(举例:第一次碎了,第二次没碎,第三次没碎,那么从376层的上一层试到501层的下一层,即最多试124次。) 可见最多试124 + 3-----127次! 题外话:在第一层大概不要试,但于最后结果没有影响。第一层相当于C语言的第0层,但于最后结果也没有影响。 |
|
|
5楼#
发布于:2002-10-22 19:15
大哥:――我以到了1000楼,还没碎――怎么办!! :D :D :D休息,休息一会. 再找楼主算账. :P :P :P |
|
|
6楼#
发布于:2002-10-22 19:12
我觉的这个解法有问题: 可你好象用了四块石头. X(4,5) = 30 > 21; 另: 几时按\"改分\"将问题分数改为200分再放给我??? :D :D :D |
|
|
7楼#
发布于:2002-10-22 10:58
[quote] 不,不从第一层开始扔。 从第6层开始,如果碎了,再从第一层开始; 1 + 5 = 6 如果没碎,再去11楼。如碎,从7楼; 1 + 1 + 4 = 6 如还没碎,再至15楼。碎则从12楼; 1 + 1 + 1 + 3 = 6 如仍没碎,上18楼。碎至16楼; 1 + 1 + 1 + 1 + 2 = 6 又没碎,上20楼。碎去19; 1 + 1 + 1 + 1 + 1 + 1 = 6 没碎,上21楼。 1 + 1 + 1 + 1 + 1 + 1 = 6 [编辑 - 10/21/02 by u_you] [/quote] 大哥:――我以到了1000楼,还没碎――怎么办!! :D :D :D |
|
|
8楼#
发布于:2002-10-22 10:48
我觉的这个解法有问题:
比如说 X(2,6) = 21 而实际上2块石头扔5次就可以解析21楼,方法如下: 1.楼层区间三分为(1,7)(9,14)(16,21)第一块石头从下往上测试8,15楼,无论是否破碎,两次内可选出一个区间,不凡设为(1,7) 2.第二块石头测试4楼,无论是否破碎,一次可选出区间(1,3)(5,7),设为(1,3) 3.余下两块石头扔两次显然可以解析3层的楼 所以总共的次数 2+1+2 = 5 即有 X(2,5) >= 21, 而表中X(2,5) = 15 |
|
9楼#
发布于:2002-10-22 02:34
[quote] 不,不从第一层开始扔。 从第6层开始,如果碎了,再从第一层开始; 1 + 5 = 6 如果没碎,再去11楼。如碎,从7楼; 1 + 1 + 4 = 6 如还没碎,再至15楼。碎则从12楼; 1 + 1 + 1 + 3 = 6 如仍没碎,上18楼。碎至16楼; 1 + 1 + 1 + 1 + 2 = 6 又没碎,上20楼。碎去19; 1 + 1 + 1 + 1 + 1 + 1 = 6 没碎,上21楼。 1 + 1 + 1 + 1 + 1 + 1 = 6 [编辑 - 10/21/02 by u_you] [/quote] 呵呵,不错。 |
|
|
10楼#
发布于:2002-10-21 23:32
不,不从第一层开始扔。 从第6层开始,如果碎了,再从第一层开始; 1 + 5 = 6 如果没碎,再去11楼。如碎,从7楼; 1 + 1 + 4 = 6 如还没碎,再至15楼。碎则从12楼; 1 + 1 + 1 + 3 = 6 如仍没碎,上18楼。碎至16楼; 1 + 1 + 1 + 1 + 2 = 6 又没碎,上20楼。碎去19; 1 + 1 + 1 + 1 + 1 + 1 = 6 没碎,上21楼。 1 + 1 + 1 + 1 + 1 + 1 = 6 [编辑 - 10/21/02 by u_you] |
|
|
11楼#
发布于:2002-10-21 23:20
这道题我们应反过来考虑,就是用a块石头扔b次至多一定可分辨层数X(a,b)。 我认为这个解法有错,例如说2块石头,表中说扔6次可以解析 21楼,我认为是不可能的。从第一层开始扔,1,3,6,10,15 5次,都没有碎,到21,碎了,然后一块石头判断21-15,可不是 1次能够搞定的阿。 |
|
|
12楼#
发布于:2002-10-21 22:32
1000的分界点是382左右!而382的是146,呵呵!这样算下去看看有多少的差别 我的第一个分界点是299,第二个分界点是67,531。而且与石头数有关。 |
|
|
13楼#
发布于:2002-10-21 21:36
1000的分界点是382左右!而382的是146,呵呵!这样算下去看看有多少的差别
|
|
14楼#
发布于:2002-10-21 21:34
你看看你列出来的那个表,跟黄金分割法里面算出来的有多少的差别啊!
|
|
15楼#
发布于:2002-10-21 21:32
呵呵!劳烦狼兄再用黄金分割法再看看我认为“黄金分割法”是一种基于统计理论的算法。是统计最优,非一定最好。 |
|
|
16楼#
发布于:2002-10-21 21:18
呵呵!劳烦狼兄再用黄金分割法再看看
|
|
17楼#
发布于:2002-10-21 21:10
这道题我们应反过来考虑,就是用a块石头扔b次至多一定可分辨层数X(a,b)。
先从最简装的一块石头考虑,很显然, X(1,1) = 1 X(1,2) = 2 X(1,3) = 3 . X(1,i) = i 再考虑二块石头,显而易见 X(2,1) = 1 对于X(2,2),我们可这样考虑,当我们扔第一次后,有两种可能:破和不破. 如果石头破了,则 1,我们还剩1块石头. 2,我们下一次只需检查下面的楼层. 3,我们还剩1次机会. 即我们还可分辨下面的 X(1,1) 层. 如果石头没破,则 1,我们还剩2块石头. 2,我们下一次只需检查上面的楼层. 3,我们还剩1次机会. 即我们还可分辨上面的 X(2,1) 层. 我们知道,X(1,1) = 1.所以我们第一次从第二层开始扔,如果石头破了,则再测试第一层.如果没破则再测试第三层. 所以用2块石头扔2次至多一定可分辨 1 + X(1,1) + X(2,1) = 1 + 1 + 1 = 3 层. 不失一般性,我们考虑 X(2,i) 对X(2,i),我们这样考虑,当我们扔第一次后,有两种可能:破和不破. 如果石头破了,则 1,我们还剩1块石头. 2,我们下一次只需检查下面的楼层. 3,我们还剩i-1次机会. 即我们还可分辨下面的 X(1,i-1) 层. 如果石头没破,则 1,我们还剩2块石头. 2,我们下一次只需检查上面的楼层. 3,我们还剩i-1次机会. 即我们还可分辨上面的 X(2,i-1) 层. 则 X(2,i) = 1 + X(1,i-1) + X(2,i-1) 接下来我们考虑 X(i1,i2) 同样,对 X(i1,i2),我们还是这样考虑,当我们扔第一次后,有两种可能:破和不破. 如果石头破了,则 1,我们还剩i1-1块石头. 2,我们下一次只需检查下面的楼层. 3,我们还剩i2-1次机会. 如果石头没破,则 1,我们还剩i1块石头. 2,我们下一次只需检查上面的楼层. 3,我们还剩i2-1次机会. 即 X(i1,i2) = 1 + X(i1-1,i2-1) + X(i1,i2-1) 很明显 无论你有几块石头,扔一次只能测试一层. 即 X(i,1) = 1. 这样,我们可制出如下表: 扔的次数: 1 2 3 04 05 06 007 008 009 010 011 012 013 分辨层数: 一块石头: 1 2 3 04 05 06 007 008 009 010 011 012 013 二块石头: 1 3 6 10 15 21 028 036 045 055 066 078 091 三块石头: 1 3 7 14 25 41 063 092 129 175 231 298 377 四块石头: 1 3 7 15 30 56 098 162 255 385 561 793 1092 五块石头: 1 3 7 15 31 62 119 218 381 637 1023 六块石头: 1 3 7 15 31 63 126 246 465 847 1485 也就是说用4块石头扔12次至多一定可分辨793层,扔13次至多一定可分辨1092层. 所以 1000层的楼房, 用4块石头,扔13次一定可测试出来. 用5块石头,扔11次一定可测试出来. |
|
|
18楼#
发布于:2002-10-21 18:49
哈哈!碎了石头就从一块变成多块啦
|
|
19楼#
发布于:2002-10-21 17:48
一个思路是:第一个石头先把1000层划分成a块,第二块石头把每块划分成b小块,第三块再化c小块,第四块遍历最小的小块。
(a-1)+(b-1)+(c-1)+(1000/abc)-1 最小值 |
|
上一页
下一页