martes, 6 de julio de 2010

Duda de Serie de Fibonacci

¿Qué es la serie de fibonacci?
La serie de fibonacci, es la sucesión infinita de números naturales, los cuales son:
0,1,1,2,3,5,8,13,21,34,55,etc...

¿Cómo se empieza?
La sucesión se empieza con 0 y 1 de ahí se suman y da un resultado que en su caso da 1 después de esto se suma el resultado y el segundo numero.
Algebraica mente seria:
a + b = c
b + c = d
y así sucesiva mente
.

Y para que lo veas con numéricos seria:
0 + 1 = 1
1 + 1 = 2

Programa en C
Aquí les dejo un pequeño programa que hice en C.

Serie Fibonacci en C
View more documents from Abraham.
Y aqui esta el link de descarga

Duda
Bueno la pregunta surgió, en esta parte del código:
c = a + b
Esto quiere decir, que el valor de c sera la suma de a y b.
Después de esto imprime el valor de c, que es la parte donde viene el printf.
Ya después viene, que se sustituyen los valores.
a = b
b = c
Y se vuelve a repetir el ciclo.
Hasta esta parte esta bien, pero, la duda o la pregunta surgió, es que pasa si se cambia el orden al momento de sustituir a y b, osea que primero se ponga b y después se ponga a.
b = c
a = b
Si se cambian de posición, lo que pasaría es que vendría imprimiendo lo siguiente:
A que se debe que imprima 0,1,1,2,4,8,16,32, etc...
La respuesta esta en que b toma el valor de c y a toma el de b.
Así que el valor de a simpre viene siendo el valor de c.
Ej.:
c = a + b
b = c
a = b
0 + 1 = 1
1 + 1 = 2
2 + 2 = 4
4 + 4 = 8
En pocas palabras, no van cambiando se vuelve a repetir los valores.

1 comentario:

  1. Muy bien :) En particular, el sumar un número con si mismo tiene el mismo efecto que multiplicar por dos, por lo cual desde 1 en adelante saldrán puras potencias de dos.

    ResponderEliminar