Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Algoritmi - SFIDA: Chi posta il numero primo più alto?
Forum - Algoritmi - SFIDA: Chi posta il numero primo più alto?

Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 19:14
Sabato, 17/01/2009
In questo thread chiunque può postare un numero primo, specificando anche il numero di sequenza di tale numero (per es. 5 è il 3° numero primo).

Vediamo quale è il numero più alto che riusciamo a raggiungere... ovviamente lo scopo di questo thread non è cercare su un libro o andare sul sito di un centro di calcolo e fare copia incolla di un numero di 500 cifre...
lo scopo è mettersi alla prova, con programmi scritti da noi e con le capacità di calcolo dei NOSTRI processori per capire davvero quanto è grande l'infinito.

Per cui faccio affidamento sull'onestà di tutti! (a parte che con 2 conti si capisce se il numero ha richiesto 2 ore di calcoli di un Cray o di un qualsiasi pc..)

Che la gara abbia inizio!

PM Quote
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 22:44
Domenica, 18/01/2009
183.324.667 è circa il 10milionesimo numero primo (credo!!! sto cercando di verificare)

PM Quote
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 10:19
Martedì, 20/01/2009
intorno ai 28 milioni c'è 443782429 che (spero) sia primo

PM Quote
Avatar
nick0 (Member)
Pro


Messaggi: 196
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 18:43
Sabato, 21/02/2009
secondo me sarebbe interessante trovare l'algoritmo migliore (in termini di velocità) confrontando quelli postati dagli utenti e provandoli sulla stessa macchina...

PM Quote
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 12:57
Domenica, 22/02/2009
l'algoritmo migliore... ehehe
l'algoritmo migliore che mi viene in mente consisterebbe nel:
-prendo un numero n di cui voglio stabilire la primalità (sidice così?)
- lo divido per TUTTI E SOLI i numeri primi MINORI DI RADICE DI N

la cui implementazione ha il difetto che man mano che i numeri crescono cresce anche l'utilizzo della memoria.
la complessità computazionale però sarebbe O((log n)^1/2) (correggetemi se sbaglio)

l'algoritmo (semplicissimo) che ho implementato io consiste in:
-prendo un numero n di cui voglio stabilire la primalità (sidice così?)
-divido n per tutti e soli i numeri maggiori di 1 e minori di radice di n

questo porta a compiere dei calcoli completamente inutili ma ha un utilizzo della memoria pari praticamente a zero. come dire: ogni cosa ha i sui pregi e i suoi difetti
la complessità computazionale è quindi O((n)^1/2)

se invece l'ipotesi di riemann fosse vera basterebbe verificare x ogni numeri che esso sia effettivamente una radice NON BANALE di tale funzione!

PM Quote
Avatar
nick0 (Member)
Pro


Messaggi: 196
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 19:31
Domenica, 22/02/2009
Testo quotato

Postato originariamente da eddiewrc:

- lo divido per TUTTI E SOLI i numeri primi MINORI DI RADICE DI N

la cui implementazione ha il difetto che man mano che i numeri crescono cresce anche l'utilizzo della memoria.
la complessità computazionale però sarebbe O((log n)^1/2) (correggetemi se sbaglio)




Ehm.. non ho capito, potresti postare qualche link sulla radice di N perchè non ho la più pallida idea di cosa stai dicendo 8-|

Secondo me si potrebbero anche implementare i criteri di divisibilità (per 3,per 7,per 11,per 10n-1), penso che si risparmierebbe un bel po' di calcolo se il numero non è primo...

PM Quote
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 12:54
Lunedì, 23/02/2009


con radice intendo radice quadrata... ovviamente! cerca su wikipedia!

e questa frase
- lo divido per TUTTI E SOLI i numeri primi MINORI DI RADICE DI N
è la stessa cosa che hai detto tu... ma un po' meglio, xche x esempio 9 non è primo e se un numero è divisibile per 9 lo è di sicuro anche x 3

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 16:04
Giovedì, 26/02/2009
Testo quotato

Postato originariamente da nick0:

Testo quotato

Postato originariamente da eddiewrc:

- lo divido per TUTTI E SOLI i numeri primi MINORI DI RADICE DI N

la cui implementazione ha il difetto che man mano che i numeri crescono cresce anche l'utilizzo della memoria.
la complessità computazionale però sarebbe O((log n)^1/2) (correggetemi se sbaglio)




Ehm.. non ho capito, potresti postare qualche link sulla radice di N perchè non ho la più pallida idea di cosa stai dicendo 8-|

Secondo me si potrebbero anche implementare i criteri di divisibilità (per 3,per 7,per 11,per 10n-1), penso che si risparmierebbe un bel po' di calcolo se il numero non è primo...



in effetti tempo fa pensai a un criterio universale di divisibilita' ( che tra l'altro, usato per 2, 3, 5, ecc. si riconduce a quelli gia' noti ), e' un po lungo da spiegare, e comunque e' un po' laborioso e, tranne che in qualche caso particolare o con numeri di centinaia di cifre, si fa molto prima a fare la divisione.

Per quanto riguarda il problema principale, se vogliamo trovare i numeri primi fino a X (con X grande "a piacere"), e se vogliamo abusare della memoria, si puo' procedere cosi':

1) considero un array con tutti i numeri da 2 a X;
2) considero un indice i sul primo elemento dell'array;
2) prendo dall'array l'elemento n di posto i
3) elimino dall'array  (conservando le posizioni vuote) tutti i numeri che incontro, partendo dalla posizione i, saltando di n posizioni alla volta (ossia tutti i numeri divisibili per n)
4) incremento i fino alla prossima posizione non vuota
5) se i non e' arrivato alla posizione X riprendo dal punto (2)

alla fine i numeri che rimangono nell'array saranno tutti e soli i numeri primi compresi tra 2 e X.

Computazionalmente non so... vedete voi.

Ciao.

Luigi

Ultima modifica effettuata da gigisoft il 26/02/2009 alle 16:08
PM Quote
Avatar
eddiewrc (Member)
Expert


Messaggi: 560
Iscritto: 30/04/2006

Segnala al moderatore
Postato alle 15:14
Venerdì, 27/02/2009
beh geniale.. se fossi nato circa 2300 anni fa... in pratica stai parlando del crivello di eratostene!

cmq l'algoritmo attualmente migliore è il "number field sieve", cioè il crivello del campo numerico.

PM Quote
Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo