見出し画像

「コラッツの問題(Collatz problem)」のPythonコードを書きました

「コラッツの問題」とは、次のようなものです。

任意の正の整数 n に対して、以下で定められる操作について考える。
・n が偶数の場合、n を 2 で割る
・n が奇数の場合、n に 3 をかけて 1 を足す
このとき、「どんな初期値から始めても、有限回の操作のうちに必ず 1 に到達する(そして 1→4→2→1 というループに入る)」という主張が、コラッツの予想である。

コラッツの問題 - Wikipedia


以下の手順でPythonスクリプトを作成し、ターミナルで実行できます:

  1. 任意のエディタを開き、以下のコードを新しいPythonファイル(例えば collatz.py)に保存します。

  2. ターミナルを開き、スクリプトが保存されたディレクトリに移動します。

  3. 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で実行すると、以下のようになります。

n = 100での操作結果

【SNS】

この記事が気に入ったらサポートをしてみませんか?