Fibonacci en una linea
Hoy leo en 3monkeyweb una especie de reto en donde con una linea de perl se escriben los primeros 20 numeros de la serie de fibonacci. El reto es escribir el programa mas pequeño en el lenguaje que tu desees.
Para las 3 personas que no saben que es esa serie, en terminos mundanos, es una serie de numeros en la que el siguiente numero es la suma de los dos anteriores, empezando con los numeros cero y uno.
Es decir, los primeros 7 numeros serian
0,1,1,2,3,5
Yo quiero hacer mi contribucion a la ciencia (jeje!), solo por diversion.
El lenguaje que yo escogi es Javascript, porque a traves de la historia ha sido terriblemente vilpendiado pero hoy gracias a Ajax y otras monerias, esta tomando un segundo aire. Y porque ademas, para los gustos no hacen falta razones.
Tengo 2 versiones, una de 52 y una de 53 caracteres, ambas no recursivas.
p=1;for(k=0;k<4182;){document.write(k);t=p;p+=k;k=t}
k=0;p=1;while(k<4182){document.write(k);t=p;p+=k;k=t}
Ambos programas imprimen lo siguiente:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
Si quieren una con salto de linea, agreguenle 2 caracteres a ambas (cambiando document.write a document.writeln).
Pueden hacer una version mas pequeña? O quieren compartir la suya? Quien lo intenta en Java?
Se aceptan sugerencias y comentarios.
Le mando pingback a Michoacano y a B3co que se que gustan de estos temas
Update:
Gracias a las ideas de b3co y de derkeNuke!
Con sus dos propuestas se pueden llegar a 47 caracteres
for(k=0,p=1;k<7!;t=p,p+=k,k=t)document.writeln(k)
No es que vayamos a salvar al mundo con estos ejercicios. Solo por diversion y por no dejar que la mente se nos atrofie
Si deseas contactarme puedes hacerlo en contacto@masio.com.mx o deja comentario en alguna de las entradas del blog. Tambien me encuentras en twitter en 
o deja comentario en alguna de las entradas del blog. Tambien me encuentras en twitter en
b3co
19 Jul, 2007
Que onda mi estimado, lo vi desde el otro dia y en cuatno tenga tiempo le dedico un rato, se ve muy bueno el reto.
A los dos les podrias restar dos caracteres cambiando la opcion de k
b3co
19 Jul, 2007
no salio, lo que decia es que en vez de hacer la prueba como
k menor que 4178, cambiarla por k menor que 7 factorial
saludos!
derkeNuke
23 Jul, 2007
Creo que te gané, 49 caracteres:
for(k=0,p=1;k<4182;t=p,p+=k,k=t)document.writeln(k)