找出以100万以下的数字开始的最长序列.

问题描述:

找出以100万以下的数字开始的最长序列.
以下迭代序列定义在整数集合上:
nn/2 (当n是偶数时)
n3n+ 1 (当n是奇数时)
应用以上规则,并且以数字13开始,我们得到以下序列:
134020105168421
可以看出这个以13开始以1结束的序列包含10个项.虽然还没有被证明(Collatz问题),但是人们认为在这个规则下,以任何数字开始都会以1结束.
以哪个不超过100万的数字开始,能给得到最长的序列?
注意:一旦序列开始之后,也就是从第二项开始,项是可以超过100万的.
1个回答 分类:数学 2014-11-30

问题解答:

我来补答
N=1e6;
maxl=0;
for n=1:N
l=1;k=n;
while =1
if rem(k,2)
k=3*k+1;
else
k=k/2;
end
l=l+1;
end
if l>maxl
maxn=n;
maxl=l;
end
end
disp(['以',num2str(maxn),'开始有最长序列,其长度为',num2str(maxl)]);
结果:
以837799开始有最长序列,其长度为525
 
 
展开全文阅读
剩余:2000
上一页:hfftbjhg