viernes, febrero 03, 2006

Fibonacci

Fibonacci (Leonardo de Pisa) nació en Pisa y vivió de 1170 a 1250.
Mercader y estudioso de las matemáticas fue uno de los que introdujeron los principios de la aritmética y el cálculo arábigo entre los mercaderes Europeos.

Escribió muchos libros sobre matemáticas, aunque teniendo en cuenta que no existía la imprenta, pocos han llegado hasta nuestros días.

En su libro Liber Abaci, entre múltiples problemas, plantea el de la reproducción de la pareja de conejos, que da lugar a la famosa serie de Fibonacci.

Fuente: http://redescolar.ilce.edu.mx/redescolar/act_permanentes/mate/nombres/mate4j.htm

1) Supongamos que tenemos una pareja de conejos (macho y hembra) de un mes de edad que aún no pueden reproducirse, pero que podrán hacerlo cuando cumplan dos meses de edad.

2) Supongamos también que cada mes, a partir del segundo, nace una nueva pareja de conejos (macho y hembra).

3) Si cada pareja de conejos se reproduce de la misma forma que la pareja inicial, ¿cuántas parejas habrá al principio de cada mes?

Primer mes: 1 pareja (el macho y la hembra).
Segundo mes: 1 pareja (el macho y la hembra).
Tercer mes: La pareja inicial + una nueva pareja. En total 2 parejas.
Cuarto mes: La pareja inicial + la pareja nueva del tercer mes + una nueva pareja. En total 3 parejas.
Quinto mes: Aquí el tema se complica, y ya me veo obligado a remitiros a http://redescolar.ilce.edu.mx/redescolar/act_permanentes/mate/nombres/mate4j.htm
para que lo veáis gráficamente.

El caso es que la serie resultante es 1, 1, 2, 3, 5, 8, 13, 21, …

O sea, que se puede calcular el número de parejas sumando los 2 términos anteriores.

Este tema de la serie me sirve de excusa para el primer programa. Un programita que calcule la serie hasta un límite que introduzca el usuario.

Para este tema, y siempre con la intención de hacerlo lo más fácil posible, he descargado el compilador de Turbo Pascal 5.5 de la web del programador de Pascal (http://www.devq.net/pascal)

El programa que calcula la serie hasta el límite de un tipo longint de TurboPascal es el siguiente:


program Fibonacci;
uses crt;
var numActual, numAnterior, numComodin, limite:longint;
begin
clrscr;
writeln('Serie de Fibonacci');
write('Introduce el límite: ');
readln(limite);
writeln;writeln;
numActual:=1;
numAnterior:=0;
repeat
writeln(numActual);
numComodin:=numActual;
numActual:=numAnterior+numActual;
numAnterior:=numComodin;
until numAnterior > limite;
readln
end.




Por otra parte, hace algún tiempo me descargué el BloodShed Dev-Pascal v1.9.2

que por debajo lleva Free Pascal Compiler 1.06.

Así que he decidido hacer una segunda comprobación.

El resultado es el siguiente:

La compilación no da ningún problema, pero en ejecución las tildes no aparecen correctamente. Me imagino que tendrá solución aunque no merece la pena esforzarse si con el antiguo compilador ha ido bien.

Resulta más curioso el tamaño del ejecutable obtenido:
El ejecutable generado con Turbo Pascal 5.5 es de 5 K-s.
El ejecutable generado con Free Pascal compiler 1.06 (con las opciones por defecto) ocupa 22 K-s.

Y es que el que tuvo retuvo.

No hay comentarios: