![見出し画像](https://assets.st-note.com/production/uploads/images/139437196/rectangle_large_type_2_47c53dd963787c34571abdcdc1af62b5.png?width=800)
Photo by
enjiro
「コラッツの問題(Collatz problem)」のPythonコードを書きました
「コラッツの問題」とは、次のようなものです。
任意の正の整数 n に対して、以下で定められる操作について考える。
・n が偶数の場合、n を 2 で割る
・n が奇数の場合、n に 3 をかけて 1 を足す
このとき、「どんな初期値から始めても、有限回の操作のうちに必ず 1 に到達する(そして 1→4→2→1 というループに入る)」という主張が、コラッツの予想である。
以下の手順でPythonスクリプトを作成し、ターミナルで実行できます:
任意のエディタを開き、以下のコードを新しいPythonファイル(例えば collatz.py)に保存します。
ターミナルを開き、スクリプトが保存されたディレクトリに移動します。
python collatz.py と入力してスクリプトを実行します。
def collatz_sequence(n):
print(f"- {n}")
while n != 1:
if n % 2 == 0:
n = n // 2
else:
n = 3 * n + 1
print(f"- {n}")
def main():
try:
n = int(input("数字を入力してください: "))
if n > 0:
collatz_sequence(n)
else:
print("正の整数を入力してください。")
except ValueError:
print("有効な数値を入力してください。")
if __name__ == "__main__":
main()
例えば、n = 100で実行すると、以下のようになります。
![](https://assets.st-note.com/img/1714778731240-gAHyE3gG1w.png?width=1200)
【SNS】
X (Twitter): https://twitter.com/satoshihgsn_jp
Instagram: https://www.instagram.com/satoshihgsn_jp/
この記事が気に入ったらサポートをしてみませんか?