「1番目の数値と2番目の数値を足して3番目の数値にする」、「2番目の数値と3番目の数値を足して4番目の数値にする」、「3番目の数値と4番目の数値を足して5番目の数値にする」、……
という感じで作った数値の列がフィボナッチ数列ね。
で、このルールだけだと「1番目の数値と2番目の数値はどうやって決めるんだ?」ということになるんだけど、それは0と1だと決まってる。
この1番目と2番目のことをプログラミングっぽく書くと、
def Fib( n ):
if n == 1:
return 0
elif n == 2:
return 1
という感じ。
Fib( n )ってのが「n番目の数値(を計算する関数)」ね。
で、計算が必要になる3番目以降だけど、この文章の1行目に書いたことをこのFib( n )を使って書くと、
「Fib( 1 ) + Fib( 2 )を3番目の数値にする」、「Fib( 2 ) + Fib( 3 )を4番目の数値にする」、「Fib( 3 ) + Fib( 4 )を5番目の数値にする」、……
と書ける。
それぞれの文章の後半もFib()を使って書くと
「Fib( 1 ) + Fib( 2 )をFib( 3 )にする」、「Fib( 2 ) + Fib( 3 )をFib( 4 )にする」、「Fib( 3 ) + Fib( 4 )をFib( 5 )にする」、……
という要領。
nを使って一般的に書くと、「Fib( n-1 ) + Fib( n-2 )をFib( n )にする」ということになる。
def Fib( n ):
if n == 1:
return 0
elif n == 2:
return 1
elif n >= 3:
return Fib( n-1 ) + Fib( n-2 )
大学で、再帰を使った求め方でプログラムを書く課題があった。でもまったくわからなくて、ネットからコピペした。 コード見ても、解説みても全然わからなくて泣いてる。久しぶりに...
「1番目の数値と2番目の数値を足して3番目の数値にする」、「2番目の数値と3番目の数値を足して4番目の数値にする」、「3番目の数値と4番目の数値を足して5番目の数値にする」、…… ...
これちゃんとはてなブログとかQiitaで書いて説明してあげたほうがいいやつじゃね