Leonardo Fibonacci beschrieb en el Jahr 1202 el Wachstum uno Kaninchenpopulation y fand dazu el heute después de ihm benannte Zahlenfolge el Fibonacci-Pagar. Geschichtswissenschaftler wiesen allerdings en el frühe Erwähnung dieser Folge en Sanskrit-Texten en ca. 450 antes Chr. hin.
Dann wurde entdeckt, daß esta Folge en el gesamten Natur vorkommt: El Anzahl el Vorfahren männlicher Honigbienen (Drohnen), el Zahl el Schuppen en el individual Schuppenringen uno Ananas, el Samenlamellen el Spiralringe de Fichtenzapfen, Samenstände de Sonnenblumen o Blütenblatt-Anzahl bestimmter Blumen (etwa Astern) folgt dieser Reihe.
Später avanzado Mathematiker el Fibonacci-Reihe auch en el negativen Zahlenbereich, qué u.a. para Zeckendorf-Theorem führte. Dieses besagt, daß jede beliebige todo Zahl de Folgen no-benachbarter negativo-indexierter Fibonacci-Pagar zusammengesetzt voluntad kann. Ein lo abgeleiteter Binärstellencode kann z.B. no nebeneinander auftretenden 1-Werte aufweisen, qué en cierto Anwendungen una zuverlässige Fehlererkennung ermöglicht. Weitere Anwendungen ergaben se en Organisation de Datenbanken en Form el sog. Fibonacci-Bäume. Diese son heutzutage allerdings más de theoretischem Valor (Laufzeitanalyse).
Título de la ventana upper$(\
" Allg. Fibonacci-Pagar: Gültigkeitsbereich verschiedener Formeln (ua.: Moivre-Binet) testen")
'(CL) CopyLeft 2015-08 en XProfan11.2a by P.Pájaro carpintero, Wien (Austria), OHNE JEDWEDE GEWÄHR!
'Info-Base: https://de.wikipedia.org/wiki/Fibonacci-Folge
Ventana 0,0-%maxx,%maxy-50:font 2:Conjunto("decimals",0):declarar n&,vz&,sg!
AppendMenubar 100,"N "+"_______ Tab.1 "+"___________________________ Tab.2 "+\
"__________________________________ Fib(%g) "+"____________________________ Fib(#) "+\
"_____________________ fibz_MoivreBinet() "+"_____________ Fehler "+\
"________________________________ N "
var f$="00,0,01,1,02,1,03,2,04,3,05,5,06,8,07,13,08,21,09,34,10,55,11,89,12,144,13,233,"+\
"14,377,15,610,16,987,17,1597,18,2584,19,4181,20,6765,21,10946,22,17711,23,28657,"+\
"24,46368,25,75025,26,121393,27,196418,28,317811,29,514229,30,832040,31,1346269,"+\
"32,2178309,33,3524578,34,5702887,35,9227465,36,14930352,37,24157817,38,39088169,"+\
"39,63245986,40,102334155,41,165580141,42,267914296,43,433494437,44,701408733,"+\
"45,1134903170,46,1836311903,47,2971215073,48,4807526976,49,7778742049,50,12586269025"
var fi$="0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,"+\
"28657,46368,75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465,"+\
"14930352,24157817,39088169,63245986,102334155,165580141,267914296,433494437,701408733,"+\
"1134903170,1836311903,2971215073,4807526976,7778742049,12586269025,20365011074,32951280099,"+\
"53316291173,86267571272,139583862445,225851433717,365435296162,591286729879,956722026041,"+\
"1548008755920,2504730781961,4052739537881,6557470319842,10610209857723,17167680177565,"+\
"27777890035288,44945570212853,72723460248141,117669030460994,190392490709135,308061521170129,"+\
"498454011879264,806515533049393,1304969544928657,2111485077978050,3416454622906707,"+\
"5527939700884757,8944394323791464"
whileloop -80,80
n&=&Loop:sg!=1:vz&=(n&>0)-(n&<0):caso vz&=-1:vz&=if(int(0.5*n&)=(0.5*n&),-1,1)
imprimir if(n&<0,""," ");if(abs(n&)<1000," ","");if(abs(n&)<100," ","");if(abs(n&)<10," ","");n&,
imprimir tab(10);if(vz&<0,""," ");format$("%g",vz&*val(substr$(f$,abs(n&)*2+2,","))),
imprimir tab(32);format$("%g",fib(n&)),
imprimir tab(54);format$(" ################0;-################0; 0",vz&*val(substr$(fi$,abs(n&)+1,","))),
imprimir tab(76);format$(" ################0;-################0; 0",fib(n&)),
imprimir tab(98);format$(" ################0;-################0; 0",fibz_MoivreBinet(n&)),
font 0
imprimir tab(120);format$("+################0;-################0; 0",fibz_MoivreBinet(n&)-vz&*val(substr$(fi$,abs(n&)+1,","))),
font 2
imprimir tab(142);if(n&<0,""," ");if(abs(n&)<1000," ","");if(abs(n&)<100," ","");if(abs(n&)<10," ","");n&
if %csrlin>49:imprimir " [Taste]";:waitinput:cls:endif
endwhile
waitinput
FIN
Proc fib :parámetros n&:declarar i&,vz!,sg!,f0!,f1!,f2!
sg!=1:vz!=(n&>0)-(n&<0):n&=abs(n&):f0!=1
caso vz&=-1:sg!=if(int(0.5*n&)=(0.5*n&),-1,1)
mientras que i&<n&:f2!=f1!+f0!:f0!=f1!:f1!=f2!:inc i&:endwhile
volver sg!*f2!
ENDPROC
Proc fibz_MoivreBinet :parámetros n&:caso n&=0:volver 0
var vz!=(n&>0)-(n&<0):n&=abs(n&)
var sg!=1:caso vz&=-1:sg!=if(int(0.5*n&)=(0.5*n&),-1,1)
var phi!=(1+sqrt(5))/2:var chi!=phi!-1
volver sg!*(phi!^n& + chi!^n&)/sqrt(5)
ENDPROC
|