» »

Fibonacci in čas računanja

Fibonacci in čas računanja

pikachu004 ::

Pri programiranju smo meli za nalogo narditi program ki bi računal fibonaccijeva števila
in potem v konzoli preverit čas njihovega računanja. preverit smo mogli za:
10 = 1,709s
20 = 1,787s
30 = 2,010s
40 = 5,898s

in potem ugotoviti kolkiko časa bi potrebovalo za št. 100. Vendar se po št. 40 to začne ful zavlačevat.
recimo za: 41 = 8,036s; 42 = 12,025s; 43 = 17,273s; 44 = 26,025s; 45 = 41,356s... Za 53 je potreboval že več kot pol ure.
Zanima me, če kdo ve formulo za izračun časa za število 100? Menda naj bi potreboval ogromno let.

Primoz ::

Na kakšen način pa to računaš?

V praksi lahko za števila s katerimi lahko normalno operiraš (brez posebnih knjižnic) zadevo vedno izračunaš v konstantnem času.

Fibonacci number - Wikipedia, the free encyclopedia

$F_n=((1+sqrt(5))^n-(1-sqrt(5))^n)/(2^nsqrt(5))$ (napaka se odpravlja)
There can be no real freedom without the freedom to fail.

Zgodovina sprememb…

  • spremenil: Primoz ()

JanK ::

Nisem mogel verjeti, da je zadeva tako pozresna, pa sem sam probal. Ce racunas iterativno (linearna zahtevnost), gre kot blisk in to vse do overflowa pri $F_{1477}$ (napaka se odpravlja). Ce pa racunas rekurzivno je zadeva res pocasna - zahtevnost rekurzivnega racunanja je eksponentna.
"Think about how stupid the average person is,
then realize that 50% are stupider than that"
-George Carlin

3p ::

pikachu: ti imaš zgleda šolsko rekurzivno implementacijo, ki za izracun razvije binarno drevo rekurzivnih klicev in je izracunov priblizno 2^n, torej zanj velja O(2^n).
Nerekurzivni algoritem ima zahtevnos O(n) in bo fib(100) izračunal takoj.

pikachu004 ::

amm... ja smo delali z rekurzijo.
in bi morali izračunat v kolikem času bi izračunal št. 100 rekurzivno.

naj bi prišlo več 100 miljard let

Pegaz ::

Rekurzivno racunat je nesmisel, ce racunas Fibonaccija. V zanki shranjuj v spremenljivki dve stevili, ki jih imas. Recimo, da imas 3 in 5. Prvo stevilo prepisi z drugim, drugemu pa dodaj prvega.

genesiss ::

imagodei ::

Človek dela nalogo. Morda naloga zahteva rekurzijo in ne sme narediti drugače.
- Hoc est qui sumus -

Pegaz ::

Morda ucitelj upa, da se bo kdo spomnil in naredil nalogo se na kaksen drugacen nacin, kot z uporabo rekurzivne funkcije.

Samo zdaj se ne bo "spomnil", saj smo mu ze mi povedali.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python - naloga z računanjem

Oddelek: Programiranje
132079 (1556) ktka
»

Matematika - FMF (strani: 1 2 )

Oddelek: Šola
8710386 (8119) sherman
»

Matematika - pomoč (strani: 1 2 3 )

Oddelek: Šola
10426807 (23382) daisy22
»

naloga - vesoljska postaja in astronavt

Oddelek: Šola
61580 (1356) Zero0ne
»

Tridimenzionalni fraktali

Oddelek: Novice / Znanost in tehnologija
155124 (4217) urban99

Več podobnih tem