[¯|¯] 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!

A questo link è possibile scaricare il file pdf contenente il codice Mathematica per il package di Wagon adattato alle versioni successive di Mathematica.
No TweetBacks yet. (Be the first to Tweet this post)

Tags: , , , ,

Articoli correlati

One Response to “[¯|¯] Mathematica, Mathics e il riconoscimento di numeri primi”

  1. 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

Commenta l'esercizio