2月22日学習日記

1270 ワード

初日のマーシファー・コスです.順調に流れて行きましたが…暴風の前夜はいつも静かだったのか.
「今日のテーマはフィボナッチ数列...」「構造分解配分」.
function fibonacci() {
    let x = 0;
    let y = 1;
    let z = 0;
    return function getNext() {
        [z, x, y] = [x, y, x + y];
        let a = x , b = y, c = x+y
        z = a, x=b, y=c
        console.log('z :', z, 'a :', a, 'x :', x, 'b :', b, 'y :', y , 'c :', c)
//         z=fibo(n-2), x=fibo(n-1), y=fibo(n-2)+fibo(n-1)
        return z;
    };
}

let fun = fibonacci();

for (let i = 0; i < 10; i++) {
    console.log(fun());
}
コードはこうです.構造分解配分の基本概念は理解されていますが、
私はフィボナッチ数列についてかなり理解に欠けている.
仁沢の説明で輪郭ができたのか、
[z,x,y]=[x,y,x+y]部分が主な内容である.
つまり、「構造分解配分」の概念に基づいて、
z=x,x=y,y=x+yの概念それは理解しがたい.
[z,x,y]のxとyはそれぞれy値とx+y値なので、次の値と次の値を指定します.
フィボナッチ数列のデフォルト値、例えばfibo(0)とfibo(1)です.
zは現在の値であり、残りの値でもあり、zをエクスポートすることを示す最小の番号が与えられる.
すぐには使わずに埋め尽くすので初期化しましたが、重要なのはxとy...
最初は0で、それから1で、それから1で、それから2です.
[0,1,1] , [1,1,2] ,[1,2,3], [2,3,5]
あの段阶のはあの段阶の...
構造分解配分でこのように表すこともできます…!