- ベストアンサー
組み合わせ
1~12の数字の中から3つを選択して数字を作るとき すべてバラバラの数字は何個作れるんでしょうか? 12P3 (1320個) は間違っているのでしょうか? プログラムで実際に作ったら1200個になったのですが、、
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
#3です。 数字に置き換えられて、悩んでしまいました。 それなら、#1さんの解答の通りではないですか? 音楽は全然分からないのですが、 数字に置き換えてしまうと ドとド# ドドと# みたいな場合分けになってしまいます。 12の音の中から 3つ組み合わせるなら 12C3 12の音の組み合わせから 4つ組み合わせるなら 12C4 だと思うのですが・・・
その他の回答 (5)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#2ですが、もう解決されたみたいですが・・ >プログラムで実際に作ったら1200個になったのですが、、 ということですが、 #2のプログラムだと1320になりますね。 和音ということは、順列じゃなくて、組み合わせですから 他の人も仰る通り12C3=220 ですね。
お礼
お返事いただきありがたいです、 皆様のおかげで無事求めることが出来ました~。 今は再帰構造にしています。 順列、組み合わせのあたりを思い出さないとな。。 ありがとうございました!
- take008
- ベストアンサー率46% (58/126)
$count = 0; for ($i = 0; $i < 10; $i++) { for ($j = $i+1; $j < 11; $j++) { for ($r = $j+1; $r < 12; $r++) { $count++; } } } でどうですか
お礼
すごく分かりやすいです! 使わせていただきます。 ありがとー!
- aco_michy
- ベストアンサー率25% (70/277)
12P3ではないですね。 例えば、1212は、 12と1と2 1と2と12 この時点で2通りありますね。 全部で何通りかは、単純には求められないですね。
お礼
知りたいのは 「1オクターブ、12平均率での和音の組み合わせ」 なんですけど、 ド ド# レ レ# ミ ファ ファ# ソ ソ# ラ ラ# シ の組み合わせが3和音4和音5和音・・・ でそれぞれ何個になるか調べようと思ったのです。 苦戦しています。
補足
すいません。 1~4でたとえると、 1234がすでに出ているときは 2134は1234に並び替えられるのでNG 並び替えれば同じ数になる場合はNG という組み合わせの数なんです。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
プログラムってどんなのですか?
お礼
以下のようなプログラムですが やりたいことが出来ていないかもしれません --- $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の数が組み合わせの数
補足
あ、質問とプログラムは違います。 1~12ではくて 0~11です。 先頭が0でもOKで 012はOKです。 記録するときは文字列で 出現したかどうかは文字列比較しています。
- colocolo62
- ベストアンサー率32% (1162/3624)
12C3=(12×11×10)/(3×2×1)=220 順列(P)ではなく、組合せ(C)なのでは?
お礼
組み合わせですね。 ありがとうございます
お礼
ありがとうございます。 12C3でいいんですか、 今度はプログラムで苦戦しています。 よいアルゴリズムがぱっぱと思いつけばいいのですが、 参考になりました。ありがとー!
補足
やっと、できました #2さんのお礼に書いたプログラムがバグっていました。 みなさま、ありがとうございました~。