2017-02-03 2 views
-6

Plusieurs de mes amis et professeurs m'ont soutenu que le programme de trouver toutes les permutations possibles de chiffres, dans un certain nombre de 'n' chiffres sans utiliser la récursivité n'est pas possible tandis que l'un a dit que c'est possible mais difficile. J'ai donc besoin d'aide pour résoudre ce problème. Merci.Générer toutes les permutations de chiffres dans un nombre de longueur inconnue sans utiliser la récursivité

+0

Vérifiez http://stackoverflow.com/questions/15848887/calculate-all-unique-permutations-using-nested-loops-in-python – mc20

+0

[Permutation] (https://en.wikipedia.org/wiki/ Permutation) est à propos de définir avec plusieurs éléments ... "permutations d'un (un) nombre" ne fait pas sens ... alors que voulez-vous dire par "permutations d'un nombre" – Selvin

+0

@Selvin non, les nombres naturels peuvent être définis en utilisant des ensembles :) https://en.wikipedia.org/wiki/Set-theoretic_definition_of_natural_numbers – Kojotak

Répondre

0

La récursivité est l'action d'une fonction s'appelant elle-même. Sous la hotte, les appels de fonction sont poussés vers la pile du système et lorsqu'une fonction termine l'exécution, elle sera retirée de la pile. Une pile est une structure de données qui stocke les éléments et a les opérations suivantes:

  • poussée: met un élément à la fin d'une pile
  • pop: supprime un élément de la fin d'une pile et retourne
  • haut: renvoie l'élément à la fin d'une pile

Vous devez définir ce que votre pile va stocker. Dans notre cas, cela pourrait être la permutation actuelle, éventuellement inachevée. Si vous voulez une solution itérative, votre travail consiste à gérer vous-même la pile.

+0

Je ne peux pas utiliser la récursivité ou la pile, seulement une simple déclaration en boucle. –

+0

@darker_speck Je n'ai pas suggéré que vous devriez utiliser la récursivité. Je parlais de la mise en œuvre non récursive. Et à cette fin, vous avez besoin d'une pile, où vous stockez l'état actuel de votre opération. Sans pile, vous ne pouvez pas résoudre ce problème. –

+0

Merci, ça m'a aidé. –