<docere>http://www.docere.ro/ |

—download jsFact.zip— (click pe imagine) |
În manualele de matematică elementară (de liceu), factorialul apare în principal la "analiză combinatorică" (numărul de permutări, de combinări, etc.) şi la "analiză matematică" (definiţia numărului e - suma inverselor tuturor factorialelor, aproximativ 2.7182; formula lui Taylor). În manualele de informatică, factorialul este folosit ca prim exemplu de funcţie recursivă (şi uneori este formulat vreun exerciţiu "să se calculeze 100!").
Factorialele sunt "numere mari"; eficienţa calculului depinde în primul rând de baza de numeraţie implicată (care trebuie corelată cu dimensiunea locaţiei de memorie, sau dacă vreţi altfel cu sizeof(int)).
Desigur că viteza cea mai mare pentru calculul factorialului se va obţine lucrând în C, sau în limbaj de asamblare. Dar calea metodică cea mai potrivită pentru a evidenţia în mod unitar reprezentările şi algoritmii necesari este realizarea unei aplicaţii pentru browser (folosind Javascript): nu depindem de un compilator de C, nici de microprocesor şi nici de sistemul de operare.
Browserul oferă posibilităţi standard pentru realizarea unei interfeţe unitare, prin care să putem explora şi expune problemele care se pun (legate şi de bazele de numeraţie, de numărul de cifre, de numărul de operaţii). Desigur, viteza unui program Javascript va fi mult mai mică decât aceea a programului omolog în C; totuşi, sunt de făcut nişte experimente şi nişte comparări - de exemplu, descărcând (şi dezarhivând) jsFact.zip şi rulând fişierul încorporat index.html cu diverse browsere, se va constata că Firefox produce reprezentarea hexazecimală a lui 10000! cam în 12-15 secunde, în timp ce Google Chrome o afişează aproape instantaneu (iar programul executabil - din limbaj de asamblare - amifac.cgi vizat mai încolo, o afişează chiar instantaneu).
N.B. Pe parcurs vom indica şi diverse valori temporale, de exemplu: 1000! rezultă în mai puţin de o secundă, 2000! în 3-4 secunde, iar 5000! rezultă în 35 secunde - timpi cam de trei ori mai buni, decât în cazul bazei 10; trebuie să precizăm că acestea au rezultat folosind browserul Firefox-2.0 (la nivelul începutului anului 2008) - dar deja versiunea 3.0 este cam de două-trei ori mai rapidă (5000! folosind "bignum" rezultă acum în 11 secunde).
ORAR orarul şcolii
SitSco situaţie şcolară
ŞAH prin corespondenţă
doChess a Javascript chess engine
doPGN a Javascript PGN-browser
Cal++ ambiţiile Calului
aşaAzis momente lingvistice
Comentarii
—cum ar trebui calculată Media şcolară?
completely rethink the browser:
Google chrome