• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:※ 組み合わせ列挙を機械的に表示する方法?)

組み合わせ列挙を機械的に表示する方法

このQ&Aのポイント
  • 組み合わせ列挙を機械的に表示する方法について教えてください。
  • 6個の数字を取り出す組み合わせの列挙が上手くできなくて困っています。
  • 手作業で組み合わせを列挙するのではなく、パソコンを使って効率的に列挙する方法があれば教えてください。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

回答1)  Excelを使用した方法のほんの一例です。  まず、 A1セルに  1 B1セルに  2 C1セルに  3 D1セルに  4 E1セルに  5 F1セルに  6 と入力して下さい。  次に、A2セルに次の数式を入力して下さい。 =IF($A1="","",IF($B1&","&$C1&","&$D1&","&$E1&","&$F1="6,7,8,9,10",IF(A1=5,"",A1+1),A1))  次に、B2セルに次の数式を入力して下さい。 =IF($A2="","",IF(REPLACE($A1&","&$B1&","&$C1&","&$D1&","&$E1&","&$F1,1,FIND("/",SUBSTITUTE($A1&","&$B1&","&$C1&","&$D1&","&$E1&","&$F1,",","/",COLUMNS($A:B))),)=REPLACE("5,6,7,8,9,10",1,FIND("/",SUBSTITUTE("5,6,7,8,9,10",",","/",COLUMNS($A:B))),),IF(B1=10+1-COLUMNS(B:$F),A2,B1)+1,B1))  次に、B2セルをコピーして、C2~E2の範囲に貼り付けて下さい。  次に、F2セルに次の数式を入力して下さい。 =IF($A2="","",IF(F1=10,$E2+1,F1+1))  次に、A2~F2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  これで全ての組合せを自動的に求める事が出来ます。 回答2)  真の201番目の組合せである(3→5→6→8→9→10)が抜けています。

goemon_2012
質問者

お礼

勘違いしていた場所を発見しました。色々試してみて、これで上手いこと総数が合うようになりました。今回は関数による組み合わせの数式を考えてくれて、本当にありがとうございます。 最近、ロト6の予想で自分なりに遣りたいことができたのです。そこで重複のない組合せにしないと損をすることに気づき(実は以前は適当に数字を選んで購入していました。最近、エクセルにある重複の削除という便利な機能に気づきまして、以前のものをチェックしてみたら相当数の重複があることに気づきました。「毎回100組くらいは購入してますので・・・相当、損な買い方をしていたようです。」) 組み合わせ総数を計算する方法(COMBIN関数など)はネット上に沢山あったのですが今回、ご教授頂いた。任意の数から任意の数を引き出す時に視覚的に目に見える形でエクセルのセルに表示させる方法を探せずにいました。これで、ぼくの求めていたことができそうです。 訂正場所は・・・。 (例題1)  11個から6個の順列列挙  「関数」 A2 =IF($A1="","",IF($B1&","&$C1&","&$D1&","&$E1&","&$F1="7,8,9,10,11",IF(A1=5,"",A1+1),A1)) ↓ A2 =IF($A1="","",IF($B1&","&$C1&","&$D1&","&$E1&","&$F1="7,8,9,10,11",IF(A1=6,"",A1+1),A1)) (例題3)  10個から5個の順列列挙  「関数」 A2 =IF($A1="","",IF($B1&","&$C1&","&$D1&","&$E1="7,8,9,10",IF(A1=4,"",A1+1),A1)) ↓ A2 =IF($A1="","",IF($B1&","&$C1&","&$D1&","&$E1="7,8,9,10",IF(A1=6,"",A1+1),A1)) です。 これで、うまく反応してるようなのでおそらく正解だと思っています。今回は貴重なお時間を頂き本当にありがとうございました。感謝しています。

goemon_2012
質問者

補足

ご教授頂いた。関数の数式はバッチリ210通りの組み合わせを表示してくれました。そこで、理解を深めようと思い例題を変えて数式を作ってみたのですが(例題2)以外の反応が上手いこといきません。数式に間違いのあるからだと思いますが、ばくなりに変更した変更箇所が根本的に間違っているのでしょうか? 単純に数字だけ入れ替えてみただけなので根本的なとろろに間違いがあるのだと思います。お時間のあれば、間違っているところを教えてもらえないでしょうか。 (例題1)  11個から6個の順列列挙  「関数」 「A1-1」  「B1-2」  「C1-3」  「D1-4」  「E1-5」  「F1-6」 (基本セル) A2 =IF($A1="","",IF($B1&","&$C1&","&$D1&","&$E1&","&$F1="7,8,9,10,11",IF(A1=5,"",A1+1),A1)) B2~E2 =IF($A2="","",IF(REPLACE($A1&","&$B1&","&$C1&","&$D1&","&$E1&","&$F1,1,FIND("/",SUBSTITUTE($A1&","&$B1&","&$C1&","&$D1&","&$E1&","&$F1,",","/",COLUMNS($A:B))),)=REPLACE("6,7,8,9,10,11",1,FIND("/",SUBSTITUTE("6,7,8,9,10,11",",","/",COLUMNS($A:B))),),IF(B1=11+1-COLUMNS(B:$F),A2,B1)+1,B1)) F2 =IF($A2="","",IF(F1=11,$E2+1,F1+1)) (例題2)  8個から5個の順列列挙  「関数」 「A1-1」  「B1-2」  「C1-3」  「D1-4」  「E1-5」 (基本セル) A2 =IF($A1="","",IF($B1&","&$C1&","&$D1&","&$E1="5,6,7,8",IF(A1=4,"",A1+1),A1)) B2~D2 =IF($A2="","",IF(REPLACE($A1&","&$B1&","&$C1&","&$D1&","&$E1,1,FIND("/",SUBSTITUTE($A1&","&$B1&","&$C1&","&$D1&","&$E1,",","/",COLUMNS($A:B))),)=REPLACE("4,5,6,7,8",1,FIND("/",SUBSTITUTE("4,5,6,7,8",",","/",COLUMNS($A:B))),),IF(B1=8+1-COLUMNS(B:$E),A2,B1)+1,B1)) E2 =IF($A2="","",IF(E1=8,$D2+1,E1+1)) (例題3)  10個から5個の順列列挙  「関数」 「A1-1」  「B1-2」  「C1-3」  「D1-4」  「E1-5」 (基本セル) A2 =IF($A1="","",IF($B1&","&$C1&","&$D1&","&$E1="7,8,9,10",IF(A1=4,"",A1+1),A1)) B2~D2 =IF($A2="","",IF(REPLACE($A1&","&$B1&","&$C1&","&$D1&","&$E1,1,FIND("/",SUBSTITUTE($A1&","&$B1&","&$C1&","&$D1&","&$E1,",","/",COLUMNS($A:B))),)=REPLACE("6,7,8,9,10",1,FIND("/",SUBSTITUTE("6,7,8,9,10",",","/",COLUMNS($A:B))),),IF(B1=10+1-COLUMNS(B:$E),A2,B1)+1,B1)) E2 =IF($A2="","",IF(E1=10,$D2+1,E1+1)) 以上、例題を3通り作って数式を自分なりに書き換えてみましたが(例題2)以外は組合せの総数が合いませんでした。数式の間違いを自分で探すことができないでいます。 よろしくお願いします。

その他の回答 (1)

  • f272
  • ベストアンサー率46% (8467/18127)
回答No.1

Q1. ググれば例はいろいろあるだろう。 Q2. 1で始まるのは9C5=126個だから,あなたの表はここまでは正しい。 2で始まるのは8C5=56個だから,ここまでで182個になって,あなたの表はここまでは正しい。 3で始まるのは7C5=21個だから,ここまでで203個になって,あなたの表はここまでに誤りがある。 34で始まるのは6C4=15個だから,ここまでで197個になって,あなたの表はここまでは正しい。 35で始まるのは5C4=5個だから,ここまでで202個になって,あなたの表はここまでに誤りがある。 356で始まるのは4C3=4個だから,ここまでで201個になって,あなたの表はここまでに誤りがある。 この辺までやらなくても,もう気づいているよね。 (3→5→6→8→9→10)

goemon_2012
質問者

お礼

回答、ありがとうございます。 こんな方法で間違った場所を見つけることができるんですね。 目からウロコです。 ありがとうございました。