AccueilđŸ‡«đŸ‡·Chercher

Project Euler

Project Euler est un site web proposant une sĂ©rie de problĂšmes mathĂ©matiques conçus pour ĂȘtre rĂ©solus Ă  l'aide de programmes informatiques. Le but du projet est d'attirer des adultes et des Ă©lĂšves intĂ©ressĂ©s par les mathĂ©matiques et l’informatique. Il comprend actuellement plus de 700 problĂšmes[Note 1] - [1] de difficultĂ©s variables, chacun pouvant ĂȘtre rĂ©solu en principe en moins d'une minute par un algorithme efficace sur un ordinateur de puissance modeste. De nouveaux problĂšmes sont progressivement ajoutĂ©s, actuellement au rythme d'un toutes les deux semaines, depuis la crĂ©ation du site en 2001. Un forum spĂ©cifique Ă  chaque problĂšme est accessible aux utilisateurs qui l'ont rĂ©solu. Une section Scores classe Ă©galement les membres selon le nombre de problĂšmes rĂ©solus. Il existe quatorze niveaux de classement selon le nombre de problĂšmes rĂ©solus, ainsi qu'un classement spĂ©cial basĂ© sur la vitesse de rĂ©solution des derniers problĂšmes parus.

Logo de Project Euler
Project Euler.

Adresse projecteuler.net
Commercial Non
Type de site Résolution de problÚmes mathématiques et algorithmiques
Langue Anglais
Inscription Gratuite
Créé par Colin Hughes, alias euler
Lancement

Depuis la crĂ©ation du site en 2001, plus de 1 000 000 utilisateurs se sont enregistrĂ©s sur le site[2].

Exemple de problĂšme et solutions

Une traduction du premier problĂšme est[Note 2] :

« Si on liste tous les entiers naturels infĂ©rieurs Ă  10 qui sont multiples de 3 ou de 5, on obtient 3, 5, 6 et 9. La somme de ces nombres est 23. Trouvez la somme de tous les multiples de 3 ou de 5 infĂ©rieurs Ă  1 000[Note 3]. »

Bien que ce problĂšme soit l'un des plus simples du site, il permet d'illustrer le gain de temps potentiel d'un algorithme efficace[Note 4] par rapport Ă  un algorithme naĂŻf. L'algorithme brute-force examine chaque entier naturel infĂ©rieur Ă  1 000 et actualise la somme de ceux qui remplissent les critĂšres. Cette mĂ©thode est facile Ă  implĂ©menter ; en pseudo-code, cela peut s'Ă©crire :

initialiser SOMME Ă  0;
  pour n variant de 1 Ă  999 faire
    si n est un multiple de 3 ou de 5 alors // Autrement dit si n est divisible par 3 ou par 5
      ajouter n Ă  SOMME;
  fait;
renvoyer SOMME

Cependant, pour les problĂšmes plus complexes, trouver un algorithme efficace devient indispensable. Pour cet exemple, nous pouvons rĂ©duire 1 000 opĂ©rations Ă  quelques-unes en utilisant le principe d'inclusion-exclusion et une formule de sommation :

OĂč dĂ©signe la somme des multiples de infĂ©rieurs Ă  et dĂ©signe l'arrondi Ă  l'entier infĂ©rieur.

Implémentation en Python :

def sum_1_to_n(n):
   return n * (n + 1) / 2
def sum_multiples(limit, a):
   return sum_1_to_n((limit - 1) // a) * a
sum_multiples(1000, 3) + sum_multiples(1000, 5) - sum_multiples(1000, 15)

GrĂące Ă  cet algorithme, la solution pour une borne supĂ©rieure Ă  10 000 000 peut ĂȘtre obtenue presque aussi rapidement que pour 1 000. En notation de Landau, l'algorithme brute-force est en O(n) tandis que l'algorithme efficace est en O(1) (si on considĂšre que le coĂ»t des opĂ©rations arithmĂ©tiques est constant).

Traductions du Projet Euler

À ce jour, il existe diffĂ©rentes traductions du Projet Euler (classĂ©es par ordre alphabĂ©tique) :

Liens externes

Notes et références

Notes

  1. 719 problĂšmes au 7 juin 2020.
  2. L'énoncé original est « If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000. »
  3. C'est le OU inclusif qui est utilisé ici.
  4. En informatique, quand un algorithme répond correctement au problÚme posé, on cherche souvent à l'optimiser. On veut que l'algorithme utilise le moins de temps et de mémoire possible. Voir ici pour plus de précisions.

Références

  1. (en) « Project Euler - Problems », sur projecteuler.net (consulté le ).
  2. (en) « Project Euler - Statistics », sur projecteuler.net (consulté le ).
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.