数学和编程:最长的 Collatz 数列

问题描述:

Collatz数列使用下面用2个迭代规则定义(正整数):

  • nn/2 (n 是偶数时)
  • n3n+1 (n 是奇数时)

13 带入上面规则,得到如下队列:

13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1

我们看到上面队列有10个数,从13开始以1结束。尽管它还没有被证明(Collatz猜想),但普遍认为它总是以1结束。

问题:在不超过一百万的数中,找出一个能产生最长数列的数。(注意,在产生队列的过程中允许超过一百万,也就是开始的数小于一百万)


编程解答:

C/C++

Python

结果:

Screen Shot 2015-11-22 at 8.39.25 PM

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注