View Single Post
Staro 24.02.2008., 18:18   #1
Bubba
E Pluribus UNIX
Moj komp
 
Bubba's Avatar
 
Datum registracije: Oct 2002
Lokacija: M82
Postovi: 6,733
Post Cudnovate zgode Fibonaccijevog broja

Pozdrav svima,

Jucer sam, za relaksaciju i za dusu, operativno slozio jednu od masina iz siga, Quadru 650, da budem precizniji. Nevezano uz temu, ali ne bi covjek vjerovao kako je ta Motorolica unutra zivahna i bez problema vrti apsolutno sav office posao (M$ Office paket, Explorer i slicno).

No, back to the track, gore je trenutno u eksperimentalnoznanstvenofantasticne svrhe OpenBSD 4.2. Zanimljivo je bilo gledati kako sshd kreira DSA kljuc 7:15 min, RSA 3:45 min a RSA1 5:25 min. I dok sam obnevideo od cekanja nakon peripetija s particioniranjem i boot loaderima, pade mi napamet, shale radi, okinem neku obicnu rekurziju za Fibonaccijeve brojeve pa da vidim koliko ce mu trebati da izracuna.

vi, i ->

#include stdio.h
#include stdlib

unsigned int fib(int n)
{
if (n <= 2) return 1;
else return fib(n-1) + fib(n-2);
}

int main (int argc, char * argv[])
{
unsigned int n = strtol(argv[1], NULL, 0), rezultat;
if (argv[1] == NULL)
{
printf ("Unesite n za dobivanje n-tog Fibonaccijevog broja: ");
scanf ("%u", &n);
}
printf ("\nn-ti Fibonaccijev broj je: %u.\n", fib(n));
return 0;
}

Puno racuna, primitivno, eksponencijalna slozenost, baratanje cistim integerima. Motorola number cruncher ocito nije, jer:

$ time ./fib.out 40

n-ti Fibonaccijev broj je: 102334155.
2m47.88s real 2m47.64s user 0m0.15s system

No dobro. To sad ne bi bilo nista strasno, da ja ne pokrenuh i na "Svoj komp", pa u Windblowsima kaze:

C:\>ptime fib.exe 40

ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes

=== fib.exe 40 ===

n-ti Fibonaccijev broj je: 102334155.

Execution time: 2.040 s

Ajdobro. Nije ko da nisam zadovoljan, obzirom je to izveo 100njak puta brze. No stvar je zasmrdjela kada sam to pokrenuo na Netserveru E60:

korea:/home/bubba# time ./fib.out 40

n-ti Fibonaccijev broj je: 102334155.

real 0m6.122s
user 0m6.120s
sys 0m0.000s

Hmmm. Rezultat ispada previse linearan, ruku na srce, s obzirom da ovaj C2D ima ~3 puta vecu frekvenciju, i 3x brze racuna. Progutam ja to jos nekako, no Athlon XP 1900+ istu stvar izracuna za

C:\>ptime fib.exe 40

ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes

=== fib.exe 40 ===

n-ti Fibonaccijev broj je: 102334155.

Execution time: 1.786 s

docim je Athlon XP 1700+ zericu sporiji

C:\>ptime fib.exe 40

ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes

=== fib.exe 40 ===

n-ti Fibonaccijev broj je: 102334155.

Execution time: 1.982 s

Sva mjerenja ponovljena su nekoliko desetaka puta radi standardnih devijacija i nikakva znacajna odstupanja ne postoje. Pokusavsi ga dotjerati do vrha unsignea, probao sam izracunati 47. broj, nadajuci se da bi mozda duzina racunanja mogla anularati i eventualno prevagnuti rezultat u Pentačevu korist, ali avaj:

C2D vs. AXP -> 60.351 vs 50.642

Kompajlirao sam samo na ovom Intelu i to s mingw32 3.4.5. Moze li netko isprobati s kakvim nabudzenim Phenomom ili brend nju kloukanim Penrynom? Ima li itko ideju/objasnjenje?

Eh, da dometnem, nikakvi power saving tu tu ru tu modovi i cuda nisu ukljuceni. Frekvencija je 1.86GHz, vise puta provjerena.
__________________
https://2.71828182845904523536028747...966967627.com/

Programer
Rok od dva mjeseca u stvari znači četiri, ali nikako ispod šest.
Bubba je offline   Reply With Quote