質問: b, a+b > > > > > > ... > > > > > > 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987, > > > > > > > > > > > > > > > > > > ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: ``` a, b = 0, 1 while b < 1000: print(b, end=',') a, b = b, a+b ``` フィボナッチ数列を {x_i} としたとき、変数 a を x_i、変数 b を x_{i + 1} の 値を格納するのに使用しています。 なので、 x_0 = 0, x_1 = 1 1ループ目 x_1 を出力 x_2, x_3 = x_1, x_1 + x_2 2ループ目 x_2 を出力 x_3, x_4 = x_2, x_2 + x_3 3ループ目 x_3 を出力 x_4, x_5 = x_3, x_3 + x_4 以下同様 以上の仕組みで n ループ目で x_n の値が表示されるので、フィボナッチ数列を出力できたことになります。 ちなみにタプルをタプルに代入する場合 (`a, b = b, a+b`) `a = b` してから `b = a + b` が行われるのではなく、両方同時に行われることに注意してください。 ``` a = 2 b = 1 a, b = b, a + b print(a, b) # 1 3 ```