PROGRAMMING and OTHERS

スクラッチプログラミング入門、JAVA PROGRAMMING 入門 , 英語学習、ブログ開発など。

スクラッチ・プログラミング---数列と級数6:リストの操作、フィボナッチ数列

フィボナッチ数列は以下のように定義される。

 

    f(i)=f(i-1)+f(i-2) , ただし、f(1)=1, f(2)=1, i>2

 

上の定義は数列が以下のようになることを意味する。

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...

 

つまり、一番目と二番目は1で、i番目はi-1番目とi-2番目の和である数列を意味する。

 

図6-1はフィボナッチの数列を7個発生させ、それをfiboというリスト(配列)に入れ、それを表示するプログラムである。図6-2はfiboリストの先頭に7つの数列がセットされた結果である。

 

このプログラムでは最初, 「データ」の「変数を作る」で変数f1, f2, f3を宣言し、さらに「データ」の「リストを作る」でfiboリストを宣言する。

プログラムの最初f1=1,f2=1として、f1をfiboに追加する。追加するとはリストの最後に空のスペースを作ってそこにデータを入れることである。図6-3の命令により、fiboの最初のスペースに1が入る。さらに、図6-4の命令によりfiboのそのあとに1が追加される。このあとは5回のループである。ループ内では以下のようにプログラムが働く。[

 

図6-5の命令によりがf(i) = f(i-1)+f(i-2)が実行され、図6-6の命令により、f(i)がリストの最後に追加される。図6-7では次のフィボナッチ数を生成するための準備である。すなわち、f1=f2; f2=f3として新しいf3を作るための準備である。すなわちf1が必要なくなったので、そのスペースを使ってデータをシフトしている。これが5回繰り返される。

scratch-topへ 

f:id:Kurokawa_Tomio:20181231182729j:plain

図6-1 フィボナッチ数列をリストの中に作る

f:id:Kurokawa_Tomio:20181231182915j:plain

図6-2 7 リストfiboの中の7個のフィボナッチ数

 

f:id:Kurokawa_Tomio:20181231183128j:plain

図6-3 最初の数をリストに入れる

f:id:Kurokawa_Tomio:20181231183458j:plain

図6-4  2番目の数をリストの最後に追加

f:id:Kurokawa_Tomio:20181231183643j:plain

図6-5 新しいフィボナッチ数を生成

f:id:Kurokawa_Tomio:20181231183754j:plain

図6-6 作成したフィボナッチ数をリストの最後に追加

f:id:Kurokawa_Tomio:20181231183908j:plain

図6-7 次のフィボナッチ数を生成するための準備