Python学習編41回目です。
東京大学のPython学習ページで学んでいます。今回は▲再帰
こいつは便利な手法だ。ChatGPTに問題出してもらいながら理解していこう
入力:pythonの再起を理解するための初歩的な練習問題を作ってください
出力:
Pythonで再帰を理解するための初歩的な練習問題をいくつか提案します。これらの問題は、再帰の基本的な概念を理解し、より複雑な問題に進む前の良い出発点となります。
問題 1: 階乗の計算
階乗関数 n! は、1 から n までの全ての整数の積です。再帰を使用して階乗関数を実装してください。
- 関数の定義:
def factorial(n):
- n が 0 または 1 の場合、階乗は 1 です。
- それ以外の場合、n! は n×(n−1)! と定義されます。
問題 2: フィボナッチ数列
フィボナッチ数列では、最初の二つの数は 0 と 1 で、その後の数は前の二つの数の和となります。再帰を使用して、指定された位置にあるフィボナッチ数を計算する関数を実装してください。
- 関数の定義:
def fibonacci(n):
問題 3: リストの合計
整数のリストが与えられたとき、そのリスト内の全ての数の合計を計算する再帰関数を実装してください。
- 関数の定義:
def sum_of_list(lst):
- リストが空の場合、合計は 0 です。
- リストに要素がある場合、その要素の合計は、リストの最初の要素と残りのリストの合計の和となります。
問題 4: 文字列の逆転
与えられた文字列を逆順にする再帰関数を実装してください。
- 関数の定義:
def reverse_string(s):
- 文字列が空または1文字の場合、そのまま返します。
- そうでない場合、最後の文字と、残りの文字列の逆転を組み合わせたものが結果になります。
これらの問題を通じて、再帰の基本原則を理解し、より複雑な再帰問題に取り組むための基礎を築くことができます。各問題を解いた後、その解法を詳しく分析し、再帰関数の動作を深く理解するよう努めてください。
returnのあとも処理が続くのが独特の特覚だけど他は既存の知識でさほど理解に困らない。知識があると知識を得る速度が加速していくのはこんな感覚か。
次回に続く