- 论坛徽章:
- 0
|
原帖由 kaios 于 2008-8-1 16:27 发表 ![]()
一个5*5*5的立方体,要切成125个1*1*1的小立方体,最少切几刀?(切块可以随意叠放)
我写的是9刀,不过感觉这个答案太常规了!应该是更少!
我可以试式证明一下,9是最小值。
假设有长方体A0,是a0*b0*c0大小的,我们用刀装备把这个物品分成1*1*1的。
把A0切一刀,所得两块,我们记体积较大的为A1。
同理,把An切一刀,所得到的,体积最大的那个物体为An+1
我们记An的长宽高为:( an,bn,cn)
随便切一刀,不妨切在an的边上了,则切成了两半:
( x, bn,cn)和( y,bn,cn) x+y=an
x和y中较大的值,不会比an/2小。
因此,我们看出来,如下的变化:
( a0,b0,c0)
( a1,b1,c1)
( a2,b2,c2)
.....
.....
( an,bn,cn)
.....
.....
( 1, 1, 1)
就是保持两个数不变,把其中一个变小。变小,但不能小于上一个数的1/2. (因为是两半中取大的)。
然而,不论怎么变,最终结果都是把每一列的数都变为1.
这么一来,
2^n变成1,要经过n步。 2^(n+1)要变成1,要经过n+1步,他们之间的值,经过的步数要大于n,而不能超过n+1,于是为n+1.
如此:
则:
( X,Y,Z), 的长方体,若:
2^a<=X<2^A
2^b<=Y<2^B
2^c<=Z<2^C
则需a+b+c步。
令X=Y=Z=5.
2^2<5<2^3
则a=b=c=3
需要3+3+3=9步。 |
|