プロが教える店舗&オフィスのセキュリティ対策術

例えば、1,2,3というのは3つの数字であり、順列の数は3!=6となり、
123
132
213
231
312
321
となります(重複なしのシャッフルだけということです)。数字を全部使うと、0123456789の10個であり個数は10!です。(自然数という意味だったら先頭が0だとダメとかありますがそれは考えないとして)。またアルファベット26文字を並び替えると26!通りになります。それを全部表示するアルゴリズムはどのようなものがあるでしょうか。ちょっと考えてみましたが、思いつきません。
pythonだと1000!とか10000!の数を表示してくれます。しかし例えば11だと0~10までの数字を並び変えるので二けただと変則的かなと思いますが。とにかく、N!個の順列を全部表示してくれるアルゴリズムはどうなるでしょうか。

できれば言語の仕様に特化したものでない方がいいのですが。あるいはそのような機能がライブラリに含まれているような言語でない方がいいです。

よろしくお願いします。

A 回答 (11件中11~11件)

    • good
    • 0
この回答へのお礼

回答ありがとうございました。動作確認しました。Cの場合も関数再帰呼び出しを用いているようです。これは必須条件でしょうか。それともそれなしでもコード化できるでしょうか。

お礼日時:2018/10/02 15:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!