😉

[ChatGPT]コラッツの問題をプログラムで書いてもらう(Python)

2023/11/18に公開

はじめに

コラッツの問題とは、すべての自然数に対して、奇数ならば3倍して1を足す、偶数ならば2で割るという操作を繰り返すと、有限回の操作回数で1になるという数学的な問題です。
指定した整数を設定すると、上の規則に従って操作するプログラムをChatGPTで書いてもらいます。

プログラム

質問
コラッツの問題をpythonで書いて。
ChatGPT
コラッツの問題(または3n+1問題)は、次のような規則に基づいて数列を生成する数学的な
問題です。与えられた整数nが偶数の場合、nを2で割る。奇数の場合は3をかけて1を足す。
この操作を繰り返すと、最終的には数列が1に到達します。コラッツの問題では、どの整数から
始めても最終的には1に到達するかどうかが未解決の問題です。

以下は、Pythonでコラッツの問題を解くシンプルなコード例です:
collatz.py
def collatz(n):
    sequence = [n]
    while n != 1:
        if n % 2 == 0:
            n = n // 2
        else:
            n = 3 * n + 1
        sequence.append(n)
    return sequence

# 例として、整数を指定して実行してみます
starting_number = 6
result_sequence = collatz(starting_number)

print(f"コラッツの数列 ({starting_number} から開始): {result_sequence}")
ChatGPT
このコードでは、collatz関数が与えられた整数から始まるコラッツの数列を生成します。
この例では、整数6から始めていますが、他の整数で試しても構いません。

上のPythonプログラムを実行したところ、正しく出力されるようです。

>python collatz.py
コラッツの数列 (6 から開始): [6, 3, 10, 5, 16, 8, 4, 2, 1]

Discussion