ここには、短い(最小の文字)フィボナッチシーケンスジェネレーターを要求するよく知られた質問があります。
誰かがフィボナッチ数列の最初のN個の要素のみを非常に短いスペースで生成できるかどうか知りたいのですが。私はそれをpythonでやろうとしていますが、どんな言語でも、どんな短い答えにも興味があります。関数F(N)は、シーケンスの最初のN個の要素を生成し、関数の戻りとしてそれらを返すか、出力します。
興味深いことに、コードゴルフの回答は1 1 2
でなくで始まるようです0 1 1 2
。それはコードゴルフや一般的なプログラミングの慣習ですか?(ウィキペディアによると、フィボナッチ数列はゼロから始まります。)
Pythonサンプル(最初の5要素):
def f(i,j,n):
if n>0:
print i;
f(j,i+j,n-1)
f(1,1,5)
F_0 = 0, F_1 = 1
か、同等F_1 = 1, F_2 = 1
。違いは、シーケンスをインデックス0(プログラミングでより一般的)または1(数学でより一般的)から開始するかどうかです。
F_0 = 0, F_1 = 1
は、行列表現での単純さにおいて明確な利点があり[[1 1][1 0]]^n = [[F_{n+1} F_n][F_n F_{n-1}]]
ます。