Lucas Willems

LUCAS WILLEMS

Un étudiant de 27 ans passionné par les maths et la programmation

English

Project Euler 24 : solution Python

Article

Voici un résumé de l'énoncé du problème 24 "Lexicographic permutations" du Project Euler (traduction complète en français ici) :

What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9 ?

Compréhension du problème

Reformulons le problème : il nous faut trouver la millionième permutation lexicographique des chiffres 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Pour résoudre ce problème, il nous faut donc générer les permutations dans l'ordre croissant et s'arrêter à la millionième. Toutefois comme pour le problème 19, Python, étant un langage de haut niveau, possède déjà une fonction générant les permutations d'une liste. Il nous suffit donc juste de :

Pour ceux qui penseraient que résoudre ce problème en utilisant une fonction déjà faite serait trop simple, Python publie dans sa documentation la fonction utilisée.

Le programme

Voici donc le programme Python que nous pouvons utiliser pour résoudre ce problème :

import itertools
permut = list(itertools.permutations("0123456789"))[999999]
resultat = ''.join(permut)
print(resultat)

Le résultat

La réponse à ce problème est 2783915460.

Recherche

Voici les recherches relatives à cette page :

Commentaires

Qu'en pensez-vous ? Donnez moi votre avis (positif ou négatif) pour que je puisse l'améliorer.