Існує добре відомий питання тут , що просить короткі (найменш символів) генератор послідовності Фібоначчі.
Мені хотілося б знати, чи може хтось генерувати лише перші N елементів, послідовності поля, за дуже короткий простір. Я намагаюся зробити це в python, але мене цікавить будь-яка коротка відповідь, будь-якою мовою. Функція F (N) генерує перші N елементів послідовності, або повертає їх як повернення функції, або друкує їх.
Цікаво, що здається, що відповіді на код-гольф починаються з 1 1 2
, а не з 0 1 1 2
. Це конвенція щодо коду-гольфу чи взагалі програмування? (У Вікіпедії сказано, що послідовність поля починається з нуля.)
Зразок пітона (перші 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}]]
.