|
本帖最后由 天山草 于 2016-1-23 09:03 编辑
在此留下一个更好一点的程序,与网友们分享:
【5X+1 运算】
n = 10; (初始的那个 X = 10)
i = 0;
m = 0; lst = {n};
Print[i, "------", n]
For[i = 1, i < 100, i++,
If[EvenQ[n], n = n/2, n = 5 n + 1]; (* 把 5 改成别的奇数,例如 7,就成为 7X+1 运算 *)
lst = Append[lst, n];
For[j = 1, j < i, j++; If[n == lst[[j - 1]], m = 1; mm = j - 1]];
Print[i, "------", n]
If[m == 1, Break[]]
]
Print["从第 ", mm - 1, " 步开始进入循环圈(循环圈长度是 ", j + 1 - mm, "):"]
For[k = mm, k < j + 2, k++, Print[lst[[k]], " "]]
运行结果:
0------10
1------5
2------26
3------13
4------66
5------33
6------166
7------83
8------416
9------208
10------104
11------52
12------26
从第 2 步开始进入循环圈(循环圈长度是 10):
26
13
66
33
166
83
416
208
104
52
26
------------------------------------------------------------------- |
|