😉
[ChatGPT]コラッツの問題をプログラムで書いてもらう(Python)
はじめに
コラッツの問題とは、すべての自然数に対して、奇数ならば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