2021-11-23

anond:20211123030751

「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で書いて説明してあげたほうがいいやつじゃね

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん