コラズ予想
https://www.sohu.com/a/157051762_224832
自然数Nの場合
f(N)= N / 2(Nは偶数)
= 3 * N + 1(Nが奇数の場合)
fを操作し続けると、最終的に1に収束しますか?
数学的な証明はまだありません。
プログラム計算の観点からは、非常に明確な構造です。Pythonは数値範囲が広いため、Pythonを使用してプログラムを作成する方が適切です。
ここでPythonループと入力パラメーターの使用を練習します。
#!/usr/bin/env python
#coding: utf-8
import sys
print("hello")
count = 0
num = 100
num = int(sys.argv[1])
while num != 1:
print(num)
count += 1
if(num % 2 == 0):
num = num / 2
else:
num = num * 3 + 1
print(count)
テスト
F:\ Learn \ 2020> python test.py 5
hello
5
16
8.0
4.0
2.0
5
F:\ Learn \ 2020> python test.py 6
hello
6
3.0
10.0
5.0
16.0
8.0
4.0
2.0
8
F:\ \ 2020> Pythonのtest.py 51学ぶ
ハロー
51
154
77.0
232.0
116.0
58.0
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
24