Fibonači skaitļi Java valodā

Fibonaci Skaitli Java Valoda



Fibonači skaitļi ir noteikta pozitīvu (veselu) veselu skaitļu secība, kas sākas no nulles līdz pozitīvai bezgalībai. Pašreizējo Fibonači skaitli iegūst, saskaitot divus iepriekšējos Fibonači skaitļus. Tieši iepriekšējie divi Fibonači skaitļi nav vienkārši skaitļi.

Faktiski pirmie divi Fibonači skaitļi ir iepriekš noteikti. Pirmais Fibonači skaitlis ir 0, bet otrais Fibonači skaitlis ir 1. Ja indeksēšana ir balstīta uz nulli un pieņem, ka Fibonači skaitļi atrodas masīvā, tad:

pie indeksa 0 , Fibonači skaitlis ir 0 , ( iepriekš definēts ) ;

pie indeksa 1 , Fibonači skaitlis ir 1 , ( iepriekš definēts ) ;

pie indeksa divi , Fibonači skaitlis ir 1 = 1 + 0 , ( pēc definīcijas ) ;

pie indeksa 3 , Fibonači skaitlis ir divi = 1 + 1 , ( pēc definīcijas ) ;

pie indeksa 4 , Fibonači skaitlis ir 3 = divi + 1 , ( pēc definīcijas ) ;

pie indeksa 5 , Fibonači skaitlis ir 5 = 3 + divi , ( pēc definīcijas ) ;

pie indeksa 6 , Fibonači skaitlis ir 8 = 5 + 3 , ( pēc definīcijas ) ;

pie indeksa 7 , Fibonači skaitlis ir 13 = 8 + 5 , ( pēc definīcijas ) ;

pie indeksa 8 , Fibonači skaitlis ir divdesmitviens = 13 + 8 , ( pēc definīcijas ) ;

pie indeksa 9 , Fibonači skaitlis ir 3. 4 = divdesmitviens + 13 , ( pēc definīcijas ) ;

un tā tālāk.







Programmēšanā šo Fibonači skaitļu nulles indeksiem tiek izmantots mainīgais n, nevis i. Un līdz ar to pirmie divpadsmit Fibonači skaitļi ir:



0 1 1 divi 3 5 8 13 divdesmitviens 3. 4 55 89
0 1 divi 3 4 5 6 7 8 9 10 vienpadsmit

Otrajā tabulas rindā ir norādīti nulles indeksi, kuriem katram programmēšanā būtu mainīgais n. Pirmajā rindā ir norādīti atbilstošie Fibonači skaitļi. Tātad Fibonači skaitļi nav vienkārši skaitļi. Galvenā definīcija sākas ar 0 pirmajam Fibonači skaitlim un 1 otrajam Fibonači skaitlim. Pārējie skaitļi tiek ražoti no turienes.



Fibonači skaitļus var izveidot O(n) laikā un arī O(1) laikā. O(n) laikam, ja n ir, piemēram, 12, tad tiktu izveidoti pirmie divpadsmit Fibonači skaitļi. O(1) laikam tiek izveidots tikai viens Fibonači skaitlis. Piemēram, ja n ir 6, tad tiktu izveidots Fibonači skaitlis 8.





Šajā rakstā ir izskaidroti šie divi veidi, kā izveidot Fibonači skaitļus Java.

Fibonači skaitļa formula

Fibonači skaitlim ir matemātiska formula. Šo formulu var rakstīt trīs rindās vai vienā rindā. Trīs rindās tas ir rakstīts šādi:

kur F n ir Fibonači skaitlis pie nulles n th rādītājs. Šādi tiek definēts Fibonači skaitlis.



Fibonači skaitļu iegūšana O(n) laikā

Ja Fibonači skaitļus ģenerē O(3) reizēs, tiktu izveidoti skaitļi 0, 1, 1; tie ir pirmie trīs Fibonači skaitļi. Pēdējā nulles n th indekss šeit ir 2. Ja Fibonači skaitļus ģenerē O(7) reizēs, tad tiktu izveidoti skaitļi 0, 1, 1, 2, 3, 5, 8; tie ir pirmie septiņi Fibonači skaitļi. Pēdējā nulles n th indekss šeit ir 6. Ja Fibonači skaitļus ģenerē O(n) reizēs, tiktu iegūti skaitļi 0, 1, 1, 2, 3, 5, 8 – – -; tie ir pirmie n Fibonači skaitļi. Pēdējā nulles n th indekss šeit ir n-1.

Java metode klasē, lai iegūtu pirmos n Fibonači skaitļus, ir:

klasē Fibonači {
nederīgs fibonači ( starpt [ ] P ) {
starpt n = P. garums ;
ja ( n > 0 )
P [ 0 ] = 0 ;
ja ( n > 1 )
P [ 1 ] = 1 ;
priekš ( starpt i = divi ; i < n ; i ++ ) { //n=0 un n=2 ir ņemti vērā
starpt CurrNr = P [ i - 1 ] + P [ i - divi ] ;
P [ i ] = CurrNr ;
}
}
}

Klase, Fibonači ir privāta. The fibonači () metode ņem masīvu P un atgriež spēkā neesošu. Metode sākas ar masīva garuma noteikšanu. Šis n garums ir nepieciešamais Fibonači skaitļu skaits. Pirmais un otrais Fibonači skaitlis ir skaidri noteikts un ievietots masīva pirmajā un otrajā pozīcijā.

Pārējie Fibonači skaitļi, kas sākas no trešā (indekss, n = 2), tiek noteikti for-cilpā un ievietoti to pozīcijās masīvā. Tātad funkcijai ir jāatgriežas spēkā neesošai. Galvenais paziņojums for-cilpā pievieno divus iepriekšējos skaitļus.

Skaidrības labad n vietā ir izmantots indeksa mainīgais i.

Piemērota Java galvenā klase (ar Java galveno metodi) ir:

publiski klasē Galvenā {
publiski statisks nederīgs galvenais ( Stīga args [ ] ) {
starpt m = 12 ;
starpt [ ] arr = jauns starpt [ m ] ;
Fibonači obj = jauns Fibonači ( ) ;
obj. fibonači ( arr ) ;
priekš ( starpt i = 0 ; i < m ; i ++ )
Sistēma . ārā . drukāt ( arr [ i ] + ' ' ) ;
Sistēma . ārā . println ( ) ;
}
}

Kad skaitļi ir iegūti ar fibonači () metodi, Java galvenā metode tos nolasa.

Viena Fibonači skaitļa iegūšana nemainīgā laikā

Ir matemātiska formula, ko var izmantot, lai iegūtu Fibonači skaitli, ja tiek dots atbilstošs nulles indekss n. Formula ir:

kur n ir nulles indekss un Fib n ir atbilstošais Fibonači skaitlis. Ņemiet vērā, ka vienādojuma labajā pusē nav kvadrātsakne no 5, kas tiek paaugstināta līdz pakāpei n; tā ir izteiksme iekavās, kas tiek paaugstināta līdz pakāpei n. Ir divi šādi izteicieni.

Ja n ir 0, Fib n būtu 0. Ja n ir 1, Fib n būtu 1. Ja n ir 2, Fib n būtu 1. Ja n ir 3, Fib n būtu 2. Ja n ir 4, Fib n būtu 3 un tā tālāk. Lasītājs var pārbaudīt šo formulu matemātiski, aizstājot n ar dažādām vērtībām un novērtējot.

Kodējot, šī formula radītu tikai vienu Fibonači skaitli n. Ja nepieciešams vairāk nekā viens Fibonači skaitļi, formulas kods ir jāizsauc vienu reizi katram no dažādajiem atbilstošajiem indeksiem.

Java valodā tikai viena Fibonači skaitļa iegūšanas metode ir šāda:

imports java.lang.* ;

klasē Fib {
dubultā fibNr ( starpt n ) {
dubultā FibN = ( Matemātika . pow ( ( 1 + Matemātika . sqrt ( 5 ) ) / divi , n ) Matemātika . pow ( ( 1 - Matemātika . sqrt ( 5 ) ) / divi , n ) ) / Matemātika . sqrt ( 5 ) ;
atgriezties FibN ;
}
}

Programmas sākumā bija jāimportē pakotne java.lang.*. Tas ir tāpēc, ka pakotnei ir matemātikas klase, kurai ir jaudas (pow) un kvadrātsaknes (sqrt) metodes. Pielāgotā Java metode šeit tieši ievieš matemātikas formulu.

Šīs funkcijas laika sarežģītība ir O(1), vienas galvenās darbības konstants pieradums. Piemērota Java galvenā klase ar Java galveno metodi iepriekšminētajai metodei ir:

publiski klasē Galvenā {
publiski statisks nederīgs galvenais ( Stīga args [ ] ) {
starpt N = vienpadsmit ;
Fib obj = jauns Fib ( ) ;
dubultā pa labi = obj. fibNr ( N ) ;
Sistēma . ārā . println ( pa labi ) ;
}
}

Tiek nosūtīts indekss n = 11 un tiek atgriezts Fibonači skaitlis 89. Izvade ir:

89.00000000000003

Nevajadzīgos decimālos ciparus var noņemt, taču par to ir jārunā citreiz.

Secinājums

Fibonači skaitļi ir noteikta veselu skaitļu secība. Lai iegūtu pašreizējo numuru, pievienojiet iepriekšējos divus atbilstošos skaitļus. Pirmie divi Fibonači skaitļi, kam seko 1, ir iepriekš deklarēti visai secībai. Pārējie Fibonači skaitļi tiek ražoti no turienes.

Lai iegūtu Fibonači skaitļus no indeksa 2 līdz skaitļiem, kas atbilst indeksam n-1, izmantojiet for-cilpu ar galveno paziņojumu:

starpt CurrNr = P [ i - 1 ] + P [ es - divi ] ;

kur currNo ir pašreizējais Fibonači skaitlis un P ir masīvs n skaitļu glabāšanai.

Lai iegūtu tikai vienu Fibonači skaitli no jebkura nulles indeksa n, izmantojiet matemātisko formulu: