2017-02-03 21 views
-6

私の友人や先生の多くは、再帰を使わずに数字のすべての可能な並べ替えを見つけるプログラムは不可能だと主張しました1人はそれが可能だが難しいと言った。だから私はこの問題を解決するための助けが必要です。 ありがとうございます。再帰を使わずに、未知の長さの数字のすべての順列を生成する

+0

チェックhttp://stackoverflow.com/questions/15848887/calculate-all-unique-permutations-using-nested-loops-in-python – mc20

+0

[順列](https://en.wikipedia.org/wiki/)順列)は、複数の要素で設定されています... "(1つの)番号の順列"は意味がありません... "数字の順列"はどういう意味ですか? – Selvin

+0

@Selvinいいえ、自然数を定義できますセットを使用して:) https://en.wikipedia.org/wiki/Set-theoretic_definition_of_natural_numbers – Kojotak

答えて

0

再帰は、自身を呼び出す関数の動作です。フードの下では、関数呼び出しはシステムのスタックにプッシュされ、関数の実行が終了すると、スタックからポップされます。

  • プッシュ:スタック項目を記憶し、次の操作を有するデータ構造であるスタック
  • ポップの最後にアイテムを置く:スタックの端からアイテムを削除し、それを返す
  • top:スタックの末尾にあるアイテムを返します。

スタックに格納する内容を定義する必要があります。私たちの場合、それは現在の、おそらく未完成の順列かもしれません。反復的な解決策が必要な場合は、自分でスタックを処理することです。

+0

私は再帰またはスタックを使用することはできません、単純なループ文だけです。 –

+0

@darker_speck再帰を使うべきではありません。私は非再帰的実装について話していました。そのためには、操作の現在の状態を格納するスタックが必要です。スタックがなければ、この問題を解決することはできません。 –

+0

ありがとう、それは助けた。 –

関連する問題