Maison > Article > développement back-end > Comment générer efficacement des partitions entières en Python ?
Le problème de partition d'entiers vise à trouver toutes les façons possibles d'exprimer un entier comme une somme d'entiers positifs. Tout en résolvant ce problème, il est avantageux d'implémenter un code propre et efficace pour améliorer le style de codage.
Une approche consiste à utiliser une fonction génératrice récursive, comme démontré dans la solution suggérée :
<code class="python">def partitions(n, I=1): yield (n,) for i in range(I, n//2 + 1): for p in partitions(n-i, i): yield (i,) + p</code>
Cette solution surpasse une implémentation précédente de Nolen en étant nettement plus rapide et plus concise, comme le montrent les comparaisons temporelles fournies. Elle reste cependant moins efficace que la fonction accel_asc.
D'autres versions de code peuvent être trouvées sur le générateur de partitions entières d'ActiveState (recette Python).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!