• ベストアンサー

同じものを含む順列

連続する16個の数字から、4つ取り出してその組合せを全て表す処理を作ろうとしています。 まずは意味からと思い、いろいろ検索して調べても、うまく理解できず、最後の手段でここに投稿いたします。 組合せのパターンを割り出すのに、「同じものを含む順列」を使って行うと言われています。 いろいろ調べて混在したものが、意味の違いの点?で、「同じものを含む順列」と「重複順列」とは同じことを表すのでしょうか。 また、「同じものを含む順列」のパターン出力のプログラムを作る必要があり、参考になるサンプルが存在するなら教えていただけないでしょうか。 (順列や組合せは見つかったのですが) 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kakkysan
  • ベストアンサー率37% (190/511)
回答No.1

「同じものを含む順列」 例えば:aaabbcc の様にa3個、b2個、c2個が同じである9文字の順列。(aacbcab…等々) 「重複順列」 例えば a、b、cを繰り返し使用する事を許可して、5個並べる。(aaabbでも良いし、aaaaaでも良いし…etc) >連続する16個の数字から、4つ取り出してその… その4個が全て異なるなら、単なる組み合わせ。 4個の内に同じ物があっても良い場合は、組み合わせと重複順列。(ものすごく難しそうな予感がします)

yamashin_0417
質問者

お礼

"kakkysan"さん、ありがとうございます。 だいぶ「同じものを含む順列」と「重複順列」の違いが整理できて来ました。 そうなると、私の今抱えている課題が「同じものを含む順列」なので、続けて質問した内容が、考え違いをしているようです。 出してもらった例に置き換えて考え直すと、 aabbcccccccccccc(a:2個,b:2個,c:12個) 上記の文字列を「同じものを含む順列」の考えで、全ての組合せパターンを出すための処理を考えればよいことになるようです。 しかし、順列の処理は参考になるサンプルソースが見つかりましたが、「同じものを含む順列」で処理するためのサンプルソースが見つかりません。 こちらの件も解りましたらアドバイスをいただければと思います。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.3

●「16通りの選択肢のなかから4つを選んで、選んだ順に並べる。ただし、同じ選択肢を何度選んでも良い。」というのが重複順列で、 1個目の選び方=16通り 2個目の選び方=16通り 3個目の選び方=16通り 4個目の選び方=16通り ですから 16^4 (16の4乗)通り。これを全て生成するには for h=1 to 16   for i=1 to 16     for j=1 to 16       for k=1 to 16         output(h, i, j, k)       rof     rof   rof rof てな具合です。「連続する16個の数字から、4つ取り出してその組合せを全て表す処理」と仰っているのは、おそらくこのことでしょう。 ●「同じものを含む順列」? そういう用語は聞いた事がない。用語の意味が定まっておらず、いろんな解釈が可能です。 ご意見1. 重複順列と同じ事だ。 ご意見2. いーや違う。選んだ4個の中に必ず「同じものを含む」のでなくては駄目だ。例えば(a,b,c,d)という選び方は同じものを含まないから駄目。つまり、上記の重複順列16^4通りのうち、4つが全部異なっているような選び方を除いたもののことだ。 ご意見3. いーやそうじゃない。例えば(a,a,a,a)という選び方は全然順列っぽくないではないか。だから、上記の重複順列16^4通りのうち、選んだ4つが全部同じ選択肢のものは除外するんだ。 ご意見4. 違う違う。選んだ4つが全部異なっているような選び方も、4つとも同じ選択肢であるものも、どっちも除くんだ。  他にもいっぱい考えられます。こういった、いろんな別の話を「同じものを含む順列」という言葉で指す可能性があるから、「同じものを含む順列」と言っただけでは意味不明なんです。  ですから、念のため、簡単な例題でご質問の意味を確認してはどうでしょうか。 例題1:選択肢 a, b, cの中から、2つ取り出して、その組合せを全て書け。 例題2: 選択肢 a, b, cの中から2つ取り出すとき、「同じものを含む順列」のパターンを全て書け。  yamashin_0417さんが、これらの例題の答を手作業で書き出して戴けないでしょうか。そうすれば、何をなさりたいのかがはっきりするでしょう。

すると、全ての回答が全文表示されます。
  • kakkysan
  • ベストアンサー率37% (190/511)
回答No.2

No.1です 4個の内に同じ物があっても良い場合は、組み合わせと重複順列。(ものすごく難しそうな予感がします)…撤回します 4^16通りですね

すると、全ての回答が全文表示されます。

関連するQ&A