[¯|¯] Mathematica, Mathics e il riconoscimento di numeri primi
Agosto 19th, 2014 | by extrabyte |Non pensavo assolutamente di scatenare un flame (o quasi) sul gruppo di Facebook Principia Mathematica. Di seguito uno screnshot di una parte della discussione:

Come è stato notato da qualcuno del gruppo, il linguaggio di scripting client-side denominato JavaScript non è adatto per l'implementazione del motore di calcolo di un Computer Algebra System che, solitamente è realizzato in C++. Infatti, JavaScript è utilizzato per rendere interattive le pagine web.
Qualcun altro, invece, ha fatto notare che Javascript è stato utilizzato solo per l'interfaccia web. A questo punto, vale la pena di testare entrambi i software. E quale test migliore se non il riconoscimento di numeri primi? Come è noto, Mathematica utilizza il comando Timing per il calcolo del tempo di computazione e la funzione built-in PrimeQ[] per il riconoscimento dei primi. Il certificato di primalità utilizzato da Mathematica, prevede un controllo incrociato con due test differenti (test forte di 2 pseudoprimi e il test basato sugli pseudoprimi di Lucas). Stan Wagon, nel suo libro Guida a Mathematica presenta un package che velocizza il certificato di primalità, attraverso il nuovo comando primeQ[]. Tale package è per la vecchia versione 2.0, e noi l'abbiamo modificato per adattarlo alla versione 6.0 e superiori. Il nuovo comando è decisamente più veloce di quello built-in, come vediamo dallo screenshot:

Passiamo, ora, a Mathics. Dopo aver puntato il nostro browser alla url http://www.mathics.net/, eseguiamo un copia&incolla del codice Mathematica (cella per cella), dopodichè carichiamo il package. Come vediamo dallo screenshot seguente, il comando Needs[] fallisce. Nonostante ciò, riconosce il nuovo comando, dando la risposta corretta in 4.816301 secondi, tempo decisamente lungo.

Proviamo, adesso, con il comando predefinito PrimeQ. Ecco il risultato:

da cui vediamo che Mathics impiega 0.004 secondi. Conclusione: Mathics è più veloce di Mathematica nel riconoscimento di grandi primi!
Tags: certificati di primalità, Mathematica, Mathics, numeri primi, pseudoprimi di Lucas
Articoli correlati


Congettura di Riemann
Trasformata discreta di Fourier
Trasformata di Fourier nel senso delle distribuzioni
Trasformata di Fourier
Infinitesimi ed infiniti
Limiti notevoli
Punti di discontinuità
Misura di Peano Jordan
Eserciziario sugli integrali
Differenziabilità
Differenziabilità (2)
Esercizi sui limiti
Appunti sulle derivate
Studio della funzione
Esercizi sugli integrali indefiniti
Algebra lineare
Analisi Matematica 2
Analisi funzionale
Entanglement quantistico
Spazio complesso
Biliardo di Novikov
Intro alla Meccanica quantistica
Entanglement Quantistico

By Gabriele Biondo on Ago 19, 2014
A conti fatti, Mathematica è più veloce di due unità di grandezza, come dimostra https://www.facebook.com/photo.php?fbid=672197516196831&set=p.672197516196831&type=1&theater