Project Euler: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m fix vari, fix immagine sinottico using AWB
Nessun oggetto della modifica
 
(8 versioni intermedie di 7 utenti non mostrate)
Riga 2:
{{Sito web
| nome = Project Euler
| url = http://projecteuler.net
| commerciale = No
| tipo = Sito di "[[problem solving]]"
Riga 13 ⟶ 12:
}}
 
'''Project Euler''' (anche conosciuto anche in [[italiaItalia]] come '''Progetto [[Eulero]]''') è un sito dedicato a una serie di problemi matematici da risolvere realizzando dei programmi per computer. Il progetto ha coinvolto adulti e studenti interessati alla [[matematica]] e alla [[Programmazione (informatica)|programmazione]] e include molteplici problemi di varia difficoltà, ognuno di essi risolvibile in meno di un minuto utilizzando un algoritmo efficiente su un computer di media potenza.
 
Vengono inoltre proposti nuovi problemi periodicamente sin dalla creazione del progetto, avvenuta nel [[2001]]. Col sito, è stato creato anche un forum dedicato dove l'utente può discutere degli esercizi una volta risolti, infatti è permesso accedere al [[Thread (comunicazione online)|thread]] soltanto dopo aver risolto l'esercizio corrispondente. Oltre alla pagina dedicata del forum, una volta risolto un dato problema è a volte disponibile anche una soluzione proposta dai creatori del sito con una o più varianti che riassumono le versioni più efficienti che si potevano trovare per risolvere l'esercizio.
 
Il sito consta di 509822 problemi in data 924 giugnodicembre 20152022.
 
== Esempio di un problema e la sua risoluzione ==
Riga 44 ⟶ 43:
</pre>
[[Python]]:
<sourcesyntaxhighlight lang="python">
print sum(x for x in xrange(1, 1000) if x%3==0 or x%5==0)
</syntaxhighlight>
</source>
 
[[C++]]:
<sourcesyntaxhighlight lang="cpp">
#include <iostream>
using namespace std;
Riga 60 ⟶ 59:
return 0;
}
</syntaxhighlight>
</source>
 
Per i problemi più complicati, diventa importante trovare un algoritmo efficiente. Per questo problema, possiamo ridurre di molto i calcoli utilizzando il [[principio di inclusione-esclusione]] e una [[sommatoria]].
Riga 69 ⟶ 68:
 
Implementazione in python:
<sourcesyntaxhighlight lang="python">
def sum1toN(n):
return n * (n + 1) / 2
Riga 77 ⟶ 76:
 
sumMultiples(1000, 3) + sumMultiples(1000, 5) - sumMultiples(1000, 15)
</syntaxhighlight>
</source>
 
Nella notazione [[O-grande]], l'algoritmo a forza bruta è O(n) e l'algoritmo efficiente è O(1) (assumendo costante il tempo per le operazioni aritmetiche).
Riga 88 ⟶ 87:
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
*{{cita web|http://projecteuler.net/|Home page}}
*{{cita web|http://euleres.zzl.org/|EulerES : Project Euler in spagnolo}}
*{{cita web | 1 = http://eulerdz.toile-libre.org/ | 2 = EulerDZ : Project Euler in francese | accesso = 8 maggio 2010 | urlarchivio = https://web.archive.org/web/20100522061217/http://eulerdz.toile-libre.org/ | dataarchivio = 22 maggio 2010 | urlmorto = sì }}
 
{{Portale|Matematica}}
 
[[Categoria:Competizioni matematiche]]