今回はPythonで再帰をやってみました。
再帰による回文判定とFractal図形を描きました。
回文判定
再帰をつかった回文判定です。
def palindrom(string):
if len(string) < 2:
return("true")
elif string[0] == string[len(string)-1]:
return(palindrom(string[1:len(string)-1]))
else:
return("false")
if len(string) < 2 といのがbase caseといって最も基本的なパターンになります。
それ以降がrecursive caseで再帰をしていく部分になります。
1文字の場合もちろんtrue。複数文字の時は最初の文字と最後の文字が同じ場合、再帰をつかって2番目と最後から2番目を比較します。
初めは再帰が何なのか分かりにくかったので、自分の書いた再帰のコードが上手く動くととてもうれしいです。
Fractal図形
再帰をつかって同じ図形を何個も連続して描くことが出来ます。上手くいくと模様のようになってとてもきれいです。
import turtle as t
def fractal(n, size):
if n == 1:
t.forward(size)
else:
t.left(45)
fractal(n - 1, size)
t.right(90)
fractal(n - 1, size)
t.left(45)
はじめにturtleという図形を描くものをimportします。
nは図形のレベルみたいなもので、1回ごとにレベルを1つずつさげていき、n=1になるとスクリプトが止まります。
n=3の場合以下のような図形が出来ます。
これをn=7にすると以下のようになります。
n=3の図形がいくつも組み合わさっていることが分かります。
この図形の他にも雪の結晶のような図形も作成できます。
自分のやったことをブログで伝えるのって本当に難しいということを最近実感します。
頭では分かっていても、言葉で書くって難しいですね。
終わり

