谁能帮我解决“狄拉克问题”
来源:百度知道 编辑:UC知道 时间:2024/06/20 00:14:15
最后结果是???????????????????
第一个猴子把桃子分成五份,发现剩下了一个。那么如果开始的桃子多4个,结果会如何。
很明显,第一个猴子会发现桃子可以平均分成五份了,它就不用吃了,直接拿走了一份,这样留给第二个猴子的桃子比原来留给第二个猴子的桃子还是多4个。这让第二个猴子也可以直接分成五份拿走一份,不用吃掉。以此类推,最后一个猴子拿完之后,剩下的是总桃子数×(4/5)的五次方=(1024/3125)×总桃子数,要让这个结果为整数,则总桃子最少为3125个,剩余1024个.最后把我们加入的4个桃子减掉,总桃子最少3121个,剩余1020个。
本题有人称为狄拉克问题,有人称为怀特海(数学家,哲学家怀特海的侄子)问题,实际上狄拉克是听怀特海讲的解法,而怀特海说他也是听来的解法。
我只会用程序傻算……
假设最后有4n个桃子。
则第五猴拿走或吃掉共n+1个桃子;
第四……(5n+1)/4+1;
第三……((5n+1)*5/4+1)*5/4+1;
第二……(((5n+1)*5/4+1)*5/4+1)*5/4+1;
第一……((((5n+1)*5/4+1)*5/4+1)*5/4+1)*5/4+1……
要想是整数,
for n=1:1000
if ((5*n+1)/4)==round((5*n+1)/4)
if (((5*n+1)*5/4+1)*5/4)==round((((5*n+1)*5/4+1)*5/4))
if (((((5*n+1)*5/4+1)*5/4+1))*5/4)==round((((((5*n+1)*5/4+1)*5/4+1))*5/4))
if ((((((5*n+1)*5/4+1)*5/4+1))*5/4+1)*5/4)==round(((((((5*n+1)*5/4+1)*5/4+1))*5/4+1)*5/4))
n,
end;
end;
end;
end;
end;
结果1000以内符合的数字有:
n = 255
n = 511
n = 767
最后剩余4×n=1020个。