Re: [Python] crivello Atkin?

2010-03-16 Per discussione Pietro Battiston
Il giorno lun, 15/03/2010 alle 23.59 +0100, Nicola Ferrari ha scritto:
 Ciao a tutti..
 stavo giocando con ProjectEuler.
 Il problema 10
 (http://projecteuler.net/index.php?section=problemsid=10) mi sta
 dando un po' di problemi..
 i tempi di risoluzione superano i 2 minuti, e io volevo rispettare le
 specifiche del sito, che prevedono che i tempi di risoluzione
 inferiori al minuto..
 
 Ho provato a riutilizzate il generatore infinito di numeri primi
 (http://stacktrace.it/2008/01/progetto-eulero-problema-3/) ma i tempi
 restano cmq alti..
 
 Qualcuno sa illustrarmi qualche metodo per velocizzare il tutto?
 Ho letto su wikipedia che c'è il crivello di Atkin che migliora le
 prestazioni di quello di Eratostene... 
 Qualcuno ferrato in materia può spiegarmi Atkin o darmi delle
 documentazioni che lo spiegano?
 
 La spiegazione fornita da wikipedia non la capisco..

Neanch'io, ma forse c'è qualcos'altro che non capisco: i seguenti
comandi

 l = [True] * 200
 for i in range(2, 2000):
... if l[i]:
... for j in range(2, 200/i):
... l[i*j] = False
 print sum([i for i in range(2, 200) if l[i]])


richiedono meno di 10 secondi sul mio computer. C'è qualcosa che mi
sfugge?

ciao

Pietro

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] crivello Atkin?

2010-03-16 Per discussione Marco Beri
2010/3/16 Pietro Battiston too...@email.it

  La spiegazione fornita da wikipedia non la capisco..

 Neanch'io, ma forse c'è qualcos'altro che non capisco: i seguenti
 comandi

  l = [True] * 200
  for i in range(2, 2000):
 ... if l[i]:
 ... for j in range(2, 200/i):
 ... l[i*j] = False
  print sum([i for i in range(2, 200) if l[i]])

 richiedono meno di 10 secondi sul mio computer. C'è qualcosa che mi
 sfugge?


Direi nulla tranne qualche condizione al contorno... :-)

Ciao.
Marco.

-- 
http://python.thinkcode.tv - Videocorso di Python
http://stacktrace.it - Aperiodico di resistenza informatica
http://beri.it - Blog di una testina di vitello
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] crivello Atkin?

2010-03-16 Per discussione Pietro Battiston
Il giorno mar, 16/03/2010 alle 10.19 +0100, Marco Beri ha scritto:
 2010/3/16 Pietro Battiston too...@email.it
  La spiegazione fornita da wikipedia non la capisco..
 
 
 Neanch'io, ma forse c'è qualcos'altro che non capisco: i
 seguenti
 comandi
 
  l = [True] * 200
  for i in range(2, 2000):
 ... if l[i]:
 ... for j in range(2, 200/i):
 ... l[i*j] = False
  print sum([i for i in range(2, 200) if l[i]])
 
 richiedono meno di 10 secondi sul mio computer. C'è qualcosa
 che mi
 sfugge?
 
 Direi nulla tranne qualche condizione al contorno... :-)

Se intendi il -1, mi stupirebbe che quello richiedesse 10 minuti :-)

Pietro


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] crivello Atkin?

2010-03-16 Per discussione Marco Beri
2010/3/16 Pietro Battiston too...@email.it

  Direi nulla tranne qualche condizione al contorno... :-)

 Se intendi il -1, mi stupirebbe che quello richiedesse 10 minuti :-)


Ah, ah! :-))

Si, intendevo il +1 da aggiungere a un paio di for e il +2000 da aggiungere
alla prima inizializzazione per evitare index error.

Comunque se anche questo problema non richiede un generatore di numeri primi
molto veloce, ti garantisco che nei problemi più avanti questo diventa
indispensabile ;-)

Ciao.
Marco.

-- 
http://python.thinkcode.tv - Videocorso di Python
http://stacktrace.it - Aperiodico di resistenza informatica
http://beri.it - Blog di una testina di vitello
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] crivello Atkin?

2010-03-16 Per discussione Pietro Battiston
Il giorno mar, 16/03/2010 alle 10.39 +0100, Marco Beri ha scritto:
 2010/3/16 Pietro Battiston too...@email.it
  Direi nulla tranne qualche condizione al contorno... :-)
 
 Se intendi il -1, mi stupirebbe che quello richiedesse 10
 minuti :-)
 
 Ah, ah! :-))
 
 Si, intendevo il +1 da aggiungere a un paio di for e il +2000 da
 aggiungere alla prima inizializzazione per evitare index error.

già!

 
 Comunque se anche questo problema non richiede un generatore di numeri
 primi molto veloce, ti garantisco che nei problemi più avanti questo
 diventa indispensabile ;-)

Allora sarà il caso che resisto alla tentazione di leggerli!

ciao

Pietro


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] crivello Atkin?

2010-03-16 Per discussione Marco Beri
2010/3/16 Pietro Battiston too...@email.it

  Allora sarà il caso che resisto alla tentazione di leggerli!


Sì, te lo consiglio.

Io sono rimasto intrippato nella scimmia del 100% e oramai non riesco più a
starne fuori... :-(

Ciao.
Marco.

-- 
http://python.thinkcode.tv - Videocorso di Python
http://stacktrace.it - Aperiodico di resistenza informatica
http://beri.it - Blog di una testina di vitello
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] crivello Atkin?

2010-03-16 Per discussione Nicola Ferrari
Marco..Non scoraggiarmi.. :)


Il giorno 16 marzo 2010 14.19, Marco Beri marcob...@gmail.com ha scritto:

 2010/3/16 Pietro Battiston too...@email.it

  Allora sarà il caso che resisto alla tentazione di leggerli!


 Sì, te lo consiglio.

 Io sono rimasto intrippato nella scimmia del 100% e oramai non riesco più a
 starne fuori... :-(

 Ciao.
 Marco.

 --
 http://python.thinkcode.tv - Videocorso di Python
 http://stacktrace.it - Aperiodico di resistenza informatica
 http://beri.it - Blog di una testina di vitello

 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python




-- 
Nicola Ferrari
website: http://www.nicolaferrari.name

skype: nick.ferro
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] crivello Atkin?

2010-03-16 Per discussione Marco Beri
2010/3/16 Nicola Ferrari nick.fe...@gmail.com

 Marco..Non scoraggiarmi.. :)


Assolutamente! Figurati! Al limite ti metto in guardia... ;-)

-- 
http://python.thinkcode.tv - Videocorso di Python
http://stacktrace.it - Aperiodico di resistenza informatica
http://beri.it - Blog di una testina di vitello
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python