Maison  >  Article  >  développement back-end  >  Comment générer efficacement des partitions entières en Python ?

Comment générer efficacement des partitions entières en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-08 11:10:02873parcourir

How to Efficiently Generate Integer Partitions in Python?

Code Python élégant pour le partitionnement d'entiers

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn