momente şi schiţe de informatică şi matematică
To attain knowledge, write. To attain wisdom, rewrite.

N: get N! (N = 3..100000)

- Forma hexazecimală formatată

- Forma zecimală 

- Verificare  cu parseInt() din javascript (pentru 3..170):  

- Verificare  calculând lg(N!) şi inversând rezultatul:  

Link-ul get N! va transmite serverului numărul introdus, iar acesta îl va pasa unei funcţii care a fost scrisă în limbaj de asamblare; ea determină valoarea factorialului acelui număr - operând în binar, nu în baza 10 (şi anume, pe "cifre" de câte 32 de biţi) - şi returnează forma hexazecimală a rezultatului. Operând numai în binar (în baza 2^32, direct în "cod-maşină") - se poate asigura viteza maximă de execuţie; iar forma hexazecimală reflectă cel mai bine reprezentarea internă - încât ea este cel mai convenabil de folosit pentru calcule (forma zecimală servind cel mult pentru afişarea unor rezultate).

Funcţia menţionată poate fi apelată şi direct (prin HTTP GET): /cgi-bin/amifac.cgi?1234, sau:

vb@Home:~$ wget http://docere.ro/cgi-bin/amifac.cgi?40
Resolving docere.ro (docere.ro)... 144.76.241.204
Connecting to docere.ro (docere.ro)|144.76.241.204|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 40 [text/html]
Saving to: ‘amifac.cgi?40’

vb@Home:~$ cat amifac.cgi?40
8EEAE81B84C7F27E080FDE64FF05254000000000
Numărul maxim pentru care se poate obţine factorialul aici, este 10 5 (caz în care timpul de răspuns este sub 5 secunde). Rezultatul returnat astfel poate fi prelucrat în alte programe, cu un limbaj sau altul; aici, "prelucrarea" (în javaScript) constă în formatarea afişării rezultatului hexazecimal primit, aducerea la forma zecimală şi respectiv, verificarea matematică a rezultatului primit de la server.

vezi Cărţile mele (de programare)

despre acesta ~ Home
(sau https://vlad.bazon.net/

Factoriale | Graficul funcţiilor

PGN browser | chess JS engine

Load

in /slightchess

/slightchess

626 partide analizate cu Crafty

(R) Computer Art | Decoraţiuni

Aplicaţii şcolare (javaScript)

Sinteze: