Burada kısa (en az karakter) bir fibonacci dizi üreteci isteyen iyi bilinen bir soru var .
Birinin fibonacci dizisinin sadece ilk N elemanını çok kısa bir alanda üretip üretemeyeceğini bilmek istiyorum. Python'da yapmaya çalışıyorum, ancak herhangi bir dilde, herhangi bir kısa cevapla ilgileniyorum. F (N) işlevi, dizinin ilk N öğelerini oluşturur, bunları işlevin dönüşü olarak döndürür veya yazdırır.
İlginç bir şekilde, kod-golf cevapları 1 1 2
yerine başlıyor gibi görünüyor 0 1 1 2
. Bu kod-golf veya genel olarak programlamada bir konvansiyon mu? (Wikipedia, fibonacci dizisinin sıfır ile başladığını söylüyor.).
Python Örneği (İlk 5 Element):
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
eşit veya eşit olarak tanımlanır F_1 = 1, F_2 = 1
. Aradaki fark diziyi dizin 0'da (programlamada daha yaygın) veya 1'de (matematikte daha yaygın) başlatmak isteyip istemediğinizdir.
F_0 = 0, F_1 = 1
, matris gösterimi ile basitlikte kesin bir yararı vardır [[1 1][1 0]]^n = [[F_{n+1} F_n][F_n F_{n-1}]]
.