• ベストアンサー

組み合わせ

1~12の数字の中から3つを選択して数字を作るとき すべてバラバラの数字は何個作れるんでしょうか? 12P3 (1320個) は間違っているのでしょうか? プログラムで実際に作ったら1200個になったのですが、、

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

  • ベストアンサー
  • aco_michy
  • ベストアンサー率25% (70/277)
回答No.4

#3です。 数字に置き換えられて、悩んでしまいました。 それなら、#1さんの解答の通りではないですか? 音楽は全然分からないのですが、 数字に置き換えてしまうと ドとド# ドドと# みたいな場合分けになってしまいます。 12の音の中から 3つ組み合わせるなら 12C3 12の音の組み合わせから 4つ組み合わせるなら 12C4 だと思うのですが・・・

TGR100
質問者

お礼

ありがとうございます。 12C3でいいんですか、 今度はプログラムで苦戦しています。 よいアルゴリズムがぱっぱと思いつけばいいのですが、 参考になりました。ありがとー!

TGR100
質問者

補足

やっと、できました #2さんのお礼に書いたプログラムがバグっていました。 みなさま、ありがとうございました~。

その他の回答 (5)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.6

#2ですが、もう解決されたみたいですが・・ >プログラムで実際に作ったら1200個になったのですが、、 ということですが、 #2のプログラムだと1320になりますね。 和音ということは、順列じゃなくて、組み合わせですから 他の人も仰る通り12C3=220 ですね。

TGR100
質問者

お礼

お返事いただきありがたいです、 皆様のおかげで無事求めることが出来ました~。 今は再帰構造にしています。 順列、組み合わせのあたりを思い出さないとな。。 ありがとうございました!

  • take008
  • ベストアンサー率46% (58/126)
回答No.5

$count = 0; for ($i = 0; $i < 10; $i++) {   for ($j = $i+1; $j < 11; $j++) {     for ($r = $j+1; $r < 12; $r++) {       $count++;     }   } } でどうですか

TGR100
質問者

お礼

すごく分かりやすいです! 使わせていただきます。 ありがとー!

  • aco_michy
  • ベストアンサー率25% (70/277)
回答No.3

12P3ではないですね。 例えば、1212は、 12と1と2 1と2と12 この時点で2通りありますね。 全部で何通りかは、単純には求められないですね。

TGR100
質問者

お礼

知りたいのは 「1オクターブ、12平均率での和音の組み合わせ」 なんですけど、 ド ド# レ レ# ミ ファ ファ# ソ ソ# ラ ラ# シ の組み合わせが3和音4和音5和音・・・ でそれぞれ何個になるか調べようと思ったのです。 苦戦しています。

TGR100
質問者

補足

すいません。 1~4でたとえると、 1234がすでに出ているときは 2134は1234に並び替えられるのでNG 並び替えれば同じ数になる場合はNG という組み合わせの数なんです。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

プログラムってどんなのですか?

TGR100
質問者

お礼

以下のようなプログラムですが やりたいことが出来ていないかもしれません --- $count = 0; for ($i = 0; $i < 12; $i++) {   for ($j = 1; $j < 12; $j++) {     $jが$iならcontinue     for ($r = 2; $r < 12; $r++) {       $rが$iか$jであればコンテニュー       並び替えればすでにカウントした数になればコンテニュー       (抜けてました)       カウントした数を記録       $count++;     }   } } $countの数が組み合わせの数

TGR100
質問者

補足

あ、質問とプログラムは違います。 1~12ではくて 0~11です。 先頭が0でもOKで 012はOKです。 記録するときは文字列で 出現したかどうかは文字列比較しています。

  • colocolo62
  • ベストアンサー率32% (1162/3624)
回答No.1

12C3=(12×11×10)/(3×2×1)=220 順列(P)ではなく、組合せ(C)なのでは?

TGR100
質問者

お礼

組み合わせですね。 ありがとうございます

関連するQ&A

専門家に質問してみよう