- ベストアンサー
組合せ
ARCの回答
- ARC
- ベストアンサー率46% (643/1383)
手元のアルゴリズム辞典では、2進数を利用して解くやり方が紹介されています。 例えば、データの個数が8個だとすると、8ビットの2進数を用意してやって、00000001, 00000010, 00000011, …, 11111111 と、順に1ずつ足していきます。そしてそれぞれの過程で1の位置と対応するデータを取り出せば、8個のデータの全ての組み合わせが判定できるわけです。 面白そうなのでちゃちゃっと作ってみました。長整数型を使って最大31個の数値の組み合わせを得ます。 ちなみにデータ数を31と指定する(N=30)と、40億以上の組み合わせを走査しなくてはならなくなる為、開始したら最後、待てど暮らせど終了しない事態に陥ると思います。 Sub test() Const MOKUHYO As Long = 10 '目標値 Const N As Long = 13 '(データの個数 - 1)を設定する。1~30を設定。 Dim p() As Long 'データ Dim i As Long, j As Long Dim Tag As Long Dim Goukei As Long Dim Table(30) As Long ' 1,2,4,8,16…を格納する Dim Counter As Long 'データを乱数で初期化する ReDim p(N) As Long For i = 0 To N p(i) = Int(Rnd() * 11) - 5 '-5~5の乱数をセット Next i '処理開始 'テーブルの初期化 For i = 0 To 30 Table(i) = 2 ^ i Next i '主処理 For i = 1 To 2 ^ N Goukei = 0 For j = 0 To N If (i And Table(j)) <> 0 Then Goukei = Goukei + p(j) Next j '合計の判定 If Goukei = MOKUHYO Then Counter = Counter + 1 For j = 0 To N If (i And Table(j)) <> 0 Then Debug.Print p(j) & " "; Next j Debug.Print End If Next 'けっかほおこく Debug.Print For i = 0 To N - 1 Debug.Print p(i) & ", "; Next i Debug.Print p(i) Debug.Print Counter & "個の組み合わせがあります。" End Sub
関連するQ&A
- 複数の数字の組み合わせの中から合計がAになる組み合わせを探す方法
例えば、1~10の数字があって、その中から合計が10になる組み合わせを探す、という計算式はExcelで作成することはできますか?(答えは[1+2+3+4][1+2+7][1+3+6][1+4+5][1+9][2+3+5][2+8][3+7][4+6]の9通り) もしくは、複数の組み合わせで計算させて、合計が10になったものを検索するという計算式は可能でしょうか? よろしくお願いします。
- 締切済み
- オフィス系ソフト
- nCr 組合せ数字からの順位の逆算
1~100までの3つの数字の組合せでは、 1番目 1、2、3 2番目 1、2、4 ・ ・ ・ 161700番目 98,99,100 となりますが、任意の3つの組合せ数字が何番目なのかを求める方法はあるのでしょうか? このケースでは、2、3、4の組合せは4951番目になる。というような事です。 これは単純に 100C2 + 1 で計算しました。 このようにnとrの数値を変えて加算していけばできそうな気もするのですが繰り返し計算が多すぎて混乱しています。 もっとシンプルな方法はないのでしょうか?
- ベストアンサー
- 数学・算数
- エクセル関数について
エクセル関数での計算式を教えてください。 3 5 -4 -9 8 11 -1 -5 8 と、数字がありますが、プラスの数字の合計とマイナスの数字の合計をそれぞれに計算したいのですが、どんな関数を使用し、又計算式を教えてください。
- ベストアンサー
- Windows XP
- 応用した計算式を教えて欲しいです。
皆さん、すいません、1つ下ぐらいに質問した者ですが、 基本の計算式を教えてもらったのですが、応用した計算式ができず 困っていまして、できましたらもう一度ご教授ください。 Aの1~3000までのセルの中に ランダムなプラスの数字、ランダムなマイナスの数字が縦にランダムに並んでます。 (例えば、0.54、0.15、0.3、0.015などが連続で並んでいたり、-0.57、-0.01、-0.25が連続で並んでいたり、0.25が1回だったり、-1.2が2回連続だったり、0があったり、等々) ※0も出現するので、その時はプラスマイナスゼロ扱いでお願いします。 0.54 0.15 0.3 0 0.015 -0.57 -0.01 -0.25 0.25 0 -1.2 -1.2 0 -1.2 その時に、 プラスの数字が並んでいる数の合計、 マイナスの数字が並んでいる数の合計、 を隣のセル(どこでもいいです)に出したいのですが、 この計算式のやり方がわかりません。。。 上記の例なら、下記のような答えになるはずなんです。 1.005 -0.83 0.25 -3.6 皆さんよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelの組み合わせをカウントしたいです。
こんにちは。 Excelの組み合わせをカウントしようと試行錯誤したのですが 未だに完成出来ないので質問させて頂きます。 A列に1から10までの数字がランダムで500行ほどあり、 A列の中で1と言う数字があった場合、 その下のセルに2があればその組み合わせを1とカウントし、 B列に合計を表示したいのですが、これは可能でしょうか? どうかご教授下さいますよう、宜しくお願い致します。
- ベストアンサー
- 財務・会計・経理
- エクセルの計算式でオートサムで単純にセルの合計を計算表示したいのですが
エクセルの計算式でオートサムで単純にセルの合計を計算表示したいのですが マイナスの数字もプラスと認識して合計表示する方法教えて下さい
- ベストアンサー
- その他MS Office製品
- EXCEL関数で数字の認識のさせ方
エクセルで、あるセルの数値がマイナスの値だった場合はこの数式、プラスだった場合はこの数式で計算という風にネストを組み立てたいのですが、プラスとマイナスの数字の認識のさせ方がうまくいきません。 数字のプラスマイナスを認識させる方法ってあるのでしょうか? 「""」で囲ってというのはわかるのですが・・・。
- ベストアンサー
- オフィス系ソフト
- エクセルで組み合わせ計算
質問があります。エクセル使えば計算とか、いろいろ覚えれば簡単に出来ると言われ前に組み合わせ計算教わった記憶が、あるんですが忘れてしまったので分かる方教えて下さい。 質問内容は、 数字で1・2・3・4・5・6・7があります。 7個の数字を3個ずつ組み合わせしたいんです。 (1・2・3)(1・2・4)(1・2・5)このような感じ何ですが 同じ数字がダブらない様にしたいんです。途中で(2・3・1)があると先に書いた(1・2・3)があるので×何ですが全部で35通りの組み合わせになると思うんですが、この様な計算も1欄で組み合わせ表示が出来るんでしょうか? また、この程度のエクセルレベルは初級位でしょうか? 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- 3つの数の組み合わせの求め方
情けない質問なんですが、朝からずっと考えていて結局あきらめました。 1~18まで3つの数字を組み合わせる場合の式を教えてください。同じ数字の組み合わせはありません。 18までだと816通りありますが、例えば12までの組み合わせが何通りになるかと言う計算式が知りたいのです。 最初 1-2-3 2番目 1-2-4 … 18までの場合の最後16-17-18 よろしくお願いします。
- ベストアンサー
- 数学・算数