Hay una pregunta muy conocido aquí que pregunta por un corto (menos caracteres) generador de secuencia de Fibonacci.
Me gustaría saber si alguien puede generar solo los primeros N elementos, de la secuencia de Fibonacci, en un espacio muy corto. Estoy tratando de hacerlo en Python, pero estoy interesado en cualquier respuesta corta, en cualquier idioma. La función F (N) genera los primeros N elementos de la secuencia, los devuelve como el retorno de la función o los imprime.
Curiosamente, parece que las respuestas de código de golf comienzan con 1 1 2
, en lugar de 0 1 1 2
. ¿Es una convención en código-golf o programación en general? (Wikipedia dice que la secuencia de Fibonacci comienza con cero).
Muestra de Python (primeros 5 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
o de manera equivalente F_1 = 1, F_2 = 1
. La diferencia es si desea comenzar la secuencia en el índice 0 (más común en programación) o 1 (más común en matemáticas).
F_0 = 0, F_1 = 1
tiene un beneficio definitivo en simplicidad con la representación matricial [[1 1][1 0]]^n = [[F_{n+1} F_n][F_n F_{n-1}]]
.