3.角谷猜想。以一个正整数n为例,当n是奇数时,下一步变为3n+1;当n是偶数时,下一步变为n/2。不断重复这样的运算,经过有限步后,一定可以得到1请python编程验证角谷猜想,随机生成一个正整数并输出验证的完整过程。
时间: 2024-02-27 13:55:12 浏览: 55
利用python实现角谷猜想
好的,以下是Python实现角谷猜想的代码,并输出验证过程:
```python
import random
def collatz_conjecture(n):
steps = 0
while n != 1:
if n % 2 == 0:
n //= 2
else:
n = 3 * n + 1
steps += 1
print("Step {}: {}".format(steps, n))
print("It took {} steps to reach 1.".format(steps))
# 随机生成一个正整数
n = random.randint(1, 100)
print("Starting number: {}".format(n))
collatz_conjecture(n)
```
输出结果如下:
```
Starting number: 31
Step 1: 94
Step 2: 47
Step 3: 142
Step 4: 71
Step 5: 214
Step 6: 107
Step 7: 322
Step 8: 161
Step 9: 484
Step 10: 242
Step 11: 121
Step 12: 364
Step 13: 182
Step 14: 91
Step 15: 274
Step 16: 137
Step 17: 412
Step 18: 206
Step 19: 103
Step 20: 310
Step 21: 155
Step 22: 466
Step 23: 233
Step 24: 700
Step 25: 350
Step 26: 175
Step 27: 526
Step 28: 263
Step 29: 790
Step 30: 395
Step 31: 1186
Step 32: 593
Step 33: 1780
Step 34: 890
Step 35: 445
Step 36: 1336
Step 37: 668
Step 38: 334
Step 39: 167
Step 40: 502
Step 41: 251
Step 42: 754
Step 43: 377
Step 44: 1132
Step 45: 566
Step 46: 283
Step 47: 850
Step 48: 425
Step 49: 1276
Step 50: 638
Step 51: 319
Step 52: 958
Step 53: 479
Step 54: 1438
Step 55: 719
Step 56: 2158
Step 57: 1079
Step 58: 3238
Step 59: 1619
Step 60: 4858
Step 61: 2429
Step 62: 7288
Step 63: 3644
Step 64: 1822
Step 65: 911
Step 66: 2734
Step 67: 1367
Step 68: 4102
Step 69: 2051
Step 70: 6154
Step 71: 3077
Step 72: 9232
Step 73: 4616
Step 74: 2308
Step 75: 1154
Step 76: 577
Step 77: 1732
Step 78: 866
Step 79: 433
Step 80: 1300
Step 81: 650
Step 82: 325
Step 83: 976
Step 84: 488
Step 85: 244
Step 86: 122
Step 87: 61
Step 88: 184
Step 89: 92
Step 90: 46
Step 91: 23
Step 92: 70
Step 93: 35
Step 94: 106
Step 95: 53
Step 96: 160
Step 97: 80
Step 98: 40
Step 99: 20
Step 100: 10
Step 101: 5
Step 102: 16
Step 103: 8
Step 104: 4
Step 105: 2
Step 106: 1
It took 106 steps to reach 1.
```
可以看出,随机生成的起始数字31,经过106步运算后,最终得到了1,验证了角谷猜想的正确性。
阅读全文