Istnieje dobrze znane pytanie , które wymaga krótkiego (najmniej znaków) generatora sekwencji fibonacciego.
Chciałbym wiedzieć, czy ktoś może wygenerować tylko pierwsze N elementów sekwencji Fibonacciego w bardzo małej przestrzeni. Próbuję to zrobić w Pythonie, ale interesuje mnie krótka odpowiedź w dowolnym języku. Funkcja F (N) generuje pierwsze N elementów sekwencji, albo zwraca je jako zwrot funkcji, albo drukuje.
Co ciekawe wydaje się, że odpowiedzi na kod-golf zaczynają się 1 1 2
od 0 1 1 2
. Czy jest to konwencja w golfa kodowym lub ogólnie w programowaniu? (Wikipedia mówi, że sekwencja Fibonacciego zaczyna się od zera).
Przykład Python (pierwsze 5 elementów):
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
lub równorzędne F_1 = 1, F_2 = 1
. Różnica polega na tym, czy chcesz rozpocząć sekwencję od indeksu 0 (częściej w programowaniu) czy 1 (częściej w matematyce).
F_0 = 0, F_1 = 1
ma określoną zaletę w prostocie dzięki reprezentacji macierzy [[1 1][1 0]]^n = [[F_{n+1} F_n][F_n F_{n-1}]]
.