Created
December 4, 2022 02:40
-
-
Save kmizu/5b40918d5ab2b637238c34b28124630f to your computer and use it in GitHub Desktop.
ChatGPTに日本語で階乗を計算する疑似コードを無理やり解釈させてみた
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
以下の日本語をプログラムとして解釈して実行してください。 | |
ほげ数を計算(N) | |
・もし、N < 2 なら1を返す | |
・そうでなければ、「N * ほげ数を計算(N - 1)」を返す | |
ほげ数を計算(10) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
続きをお願いします。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
上記の条件を満たすPythonプログラムは次のようになります。 | |
Copy code | |
# Pythonでほげ数を再帰的に計算するプログラム | |
# ほげ数を計算する関数 | |
def hoge(n): | |
# もし、N < 2 なら1を返す | |
if n < 2: | |
return 1 | |
# そうでなければ、「N * ほげ数を計算(N - 1)」を返す | |
else: | |
return n * hoge(n - 1) | |
# ほげ数を計算(10)を表示する | |
print(hoge(10)) | |
上記のプログラムを実行すると、ほげ数を計算(10)の結果である「3628800」が表示されます。 | |
Pythonでは、「if」を使用して条件分岐を行います。「if」の後には条件式が続き、条件が満たされた場合に実行される処理がインデントして記述されます。また、「else」を使用することで、条件が満たされなかった場合の処理を記述することができます。 | |
上記のプログラムでは、「hoge」関数では、引数が「2」以下の場合には「1」を返します。それ以外の場合は、再帰的に「hoge」関数を呼び出し、ほげ数を計算します。 | |
「print」を使用して、「hoge(10)」の結果を表示していますが、「print」の後 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
上記のプログラムでは、「print」を使用して、「hoge(10)」の結果を表示していますが、「print」の後ろの引数を変更することで、任意の数値のほげ数を計算することができます。例えば、「print(hoge(5))」とすると、「120」が表示されます。 | |
また、「if」と「else」を組み合わせることで、複数の条件を記述することができます。例えば、次のようなプログラムを考えます。 | |
Copy code | |
# Pythonで条件分岐を行うプログラム | |
# 引数が0以下の場合 | |
if n <= 0: | |
# 0を返す | |
return 0 | |
# 引数が1以下の場合 | |
elif n <= 1: | |
# 1を返す | |
return 1 | |
# それ以外の場合 | |
else: | |
# 「N * N - 1」を返す | |
return n * (n - 1) | |
上記のプログラムでは、「if」の後には「n <= 0」という条件が続き、その条件が満たされた場合に実行され | |
上記のプログラムでは、「if」の後には「n <= 0」という条件が続き、その条件が満たされた場合に実行される処理がインデントして記述されます。そして、「else」を使用して、条件が満たされなかった場合の処理を記述します。 | |
また、「elif」を使用することで、さらに条件分岐を行うことができます。「elif」は「else」と「if」を組み合わせたもので、「else」の後に続きます。例えば、上記のプログラムでは、「n <= 1」という条件が満たされた場合に実行される処理が「elif」の後に記述されています。 | |
このように、「if」と「elif」を組み合わせることで、複数の条件を記述することができます。また、「else」を使用することで、条件が満たされなかった場合の処理を記述することができます。 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment