Python数学难题:科拉兹猜想(又称为 3x+1 猜想、角谷猜想、哈塞猜想、冰雹猜想、乌拉姆猜想或叙拉古猜想)
科拉兹猜想,又称为 3x+1 猜想、角谷猜想、哈塞猜想、冰雹猜想、乌拉姆猜想或叙拉古猜想,是一个与自然数相关的猜想。它描述的是:对于每一个正整数,如果它是奇数,则对它乘3再加1;如果它是偶数,则对它除以2,如此循环,最终都能够得到1。这个看似简单的猜想,却引起了数学界长达数十年的关注。尽管数学家们已经对许多数字进行了验证,但这个猜想仍然未能得到完全地证明。
Python实验代码:
for Y in range(1,100000):number=Yprint(Y)loop1 = 0loop2 = 0while(True):if number%2==0:print(number,":偶数")number = number/2loop2 +=1else:print(number,":奇数")number = 3*number+1loop1 +=1if number==1:print(number,":奇数为1")breakprint("奇数计算次数:",loop1,"偶数计算次数:",loop2,"下一个数:")
通过计算结果可以直观的看到以下几条规律:
(1)j计算后获得1的过程,给出的数为偶数时总计算次数少,给出奇数计算次数多。
(2)计算过程中变为奇数时经过一次计算就可以变为偶数。
(3)计算过程中变为偶数时经过一次或多次计算才可以变为奇数。
(4)给出的值经过多次计算可以变为16的数,最后由16变为1需要经过4次偶数除以2变为1。
(5)计算过程总计算次数中,奇数 3x+1 变为偶数计算次数,少于偶数除以2的次数。
计算结果如下:
1
1 :奇数
4 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 1 偶数计算次数: 2 下一个数:
2
2 :偶数
1.0 :奇数为1
奇数计算次数: 0 偶数计算次数: 1 下一个数:
3
3 :奇数
10 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 2 偶数计算次数: 5 下一个数:
4
4 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 0 偶数计算次数: 2 下一个数:
5
5 :奇数
16 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 1 偶数计算次数: 4 下一个数:
6
6 :偶数
3.0 :奇数
10.0 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 2 偶数计算次数: 6 下一个数:
7
7 :奇数
22 :偶数
11.0 :奇数
34.0 :偶数
17.0 :奇数
52.0 :偶数
26.0 :偶数
13.0 :奇数
40.0 :偶数
20.0 :偶数
10.0 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 5 偶数计算次数: 11 下一个数:
8
8 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 0 偶数计算次数: 3 下一个数:
9
9 :奇数
28 :偶数
14.0 :偶数
7.0 :奇数
22.0 :偶数
11.0 :奇数
34.0 :偶数
17.0 :奇数
52.0 :偶数
26.0 :偶数
13.0 :奇数
40.0 :偶数
20.0 :偶数
10.0 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 6 偶数计算次数: 13 下一个数:
10
10 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 1 偶数计算次数: 5 下一个数:
11
11 :奇数
34 :偶数
17.0 :奇数
52.0 :偶数
26.0 :偶数
13.0 :奇数
40.0 :偶数
20.0 :偶数
10.0 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 4 偶数计算次数: 10 下一个数:
12
12 :偶数
6.0 :偶数
3.0 :奇数
10.0 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 2 偶数计算次数: 7 下一个数:
13
13 :奇数
40 :偶数
20.0 :偶数
10.0 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 2 偶数计算次数: 7 下一个数:
14
14 :偶数
7.0 :奇数
22.0 :偶数
11.0 :奇数
34.0 :偶数
17.0 :奇数
52.0 :偶数
26.0 :偶数
13.0 :奇数
40.0 :偶数
20.0 :偶数
10.0 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 5 偶数计算次数: 12 下一个数:
15
15 :奇数
46 :偶数
23.0 :奇数
70.0 :偶数
35.0 :奇数
106.0 :偶数
53.0 :奇数
160.0 :偶数
80.0 :偶数
40.0 :偶数
20.0 :偶数
10.0 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 5 偶数计算次数: 12 下一个数:
16
16 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 0 偶数计算次数: 4 下一个数:
17
17 :奇数
52 :偶数
26.0 :偶数
13.0 :奇数
40.0 :偶数
20.0 :偶数
10.0 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 3 偶数计算次数: 9 下一个数:
18
18 :偶数
9.0 :奇数
28.0 :偶数
14.0 :偶数
7.0 :奇数
22.0 :偶数
11.0 :奇数
34.0 :偶数
17.0 :奇数
52.0 :偶数
26.0 :偶数
13.0 :奇数
40.0 :偶数
20.0 :偶数
10.0 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 6 偶数计算次数: 14 下一个数:
19
19 :奇数
58 :偶数
29.0 :奇数
88.0 :偶数
44.0 :偶数
22.0 :偶数
11.0 :奇数
34.0 :偶数
17.0 :奇数
52.0 :偶数
26.0 :偶数
13.0 :奇数
40.0 :偶数
20.0 :偶数
10.0 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 6 偶数计算次数: 14 下一个数:
20
20 :偶数
10.0 :偶数
5.0 :奇数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1
奇数计算次数: 1 偶数计算次数: 6 下一个数:
21
21 :奇数
64 :偶数
32.0 :偶数
16.0 :偶数
8.0 :偶数
4.0 :偶数
2.0 :偶数
1.0 :奇数为1