Há uma pergunta bem conhecida aqui que pede um gerador de sequência de fibonacci curto (menos caracteres).
Gostaria de saber se alguém pode gerar apenas os primeiros N elementos, da sequência de fibonacci, em um espaço muito curto. Estou tentando fazer isso em python, mas estou interessado em qualquer resposta curta, em qualquer idioma. A função F (N) gera os primeiros N elementos da sequência, os retorna como o retorno da função ou os imprime.
Curiosamente, parece que as respostas do código-golfe começam com 1 1 2
, em vez de 0 1 1 2
. Isso é uma convenção em código-golfe ou programação em geral? (A Wikipedia diz que a sequência de fibonacci começa com zero.).
Exemplo de Python (5 primeiros elementos):
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
ou equivalentemente F_1 = 1, F_2 = 1
. A diferença é se você deseja iniciar a sequência no índice 0 (mais comum em programação) ou 1 (mais comum em matemática).
F_0 = 0, F_1 = 1
tem um benefício definido na simplicidade com a representação da matriz [[1 1][1 0]]^n = [[F_{n+1} F_n][F_n F_{n-1}]]
.