はじめまして、こんにちは。
エクセルというか、数学的な質問になるかもしれませんが、困っておりまして
お知恵をお借りできればと思い質問させていただきました。
問題が
【A】【B】【C】【D】【E】とあり、
それぞれの項目には0~12の数字が入ります。
A+B+C=12 かつ、A+D+E=12 になる条件の時、
そのパターン数、及びそのパターンを表示(一覧として出したい)するには
どうしたらいいでしょうか・・・。
(A~Eにはもちろん同じ数字も入ります。)
エクセルで挑戦しましたが、行き詰まってしまいました。
数学的な問題かもしれませんが、何かいい方法があれば・・・。
申し訳ありませんが、どうぞよろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
ん~、一般的な解法(?)を考え始めると確かにやっかいなのですが、
ご質問のケースに限って考えるならば、
非常に強い制約がついているので比較的簡単に求まります。
・Aは0~12まで自由にとれる
・A=NのときB,Dは0~12-Nの範囲で自由にとれる
・B,Dは互いに干渉しない
・B,Dが定まれば、自動的にC,Eも定まる
つまり、
A=0のとき、B:13通り × D:13通り
A=1のとき、B:12通り × D:12通り
以下同様
というわけで、
総数=13^2+12^2+…+1^2=SUMPRODUCT(ROW(1:13)^2)=819通り
パターンを書き出すには、
1行目を、
A1:0
B1:0
C1:12
D1:0
E1:12
2行目を、
A2:=IF(COUNTIF($A$1:A1,A1)=(13-A1)^2,A1+1,A1)
B2:=IF(A2<>A1,0,IF(D2=0,B1+1,B1))
C2:=12-B2-A2
D2:=IF(A1<>A2,0,IF(D1=12-A1,0,D1+1))
E2:=12-D2-A2
として、2行目を{12,0,0,0,0}が返るまで下方にフィル。
もっとも、↑は、「組み合わせを求めている」というよりも、
あらかじめ判っている「組み合わせを書き出している」だけですが…。
VBAでやるならこんな感じでしょうか。
-----------------------------------------------------
Sub Sample()
i = 0
For a = 0 To 12
For b = 0 To 12 - a
For d = 0 To 12 - a
i = i + 1
Cells(i, 1) = a
Cells(i, 2) = b
Cells(i, 3) = 12 - (a + b)
Cells(i, 4) = d
Cells(i, 5) = 12 - (a + d)
Next d
Next b
Next a
MsgBox i & "通り"
End Sub
-----------------------------------------------------
いずれもExcel2003で動作確認済。
以上ご参考まで。
ありがとうございます!!
条件定義がよくわからず、数式が組めずにおりました。
全パターンを出したいわけではなかったので、
引き算でできるかな?と思っていたのですが、そう甘くなかったことを
今回痛感しました^^;;;;
ばっちりでした。本当に助かりました!
ありがとうございます!!
No.2
- 回答日時:
ナップザック問題は難しいですよ。
今回はエクセルを使用して力ずくで回答を求める方法を説明します。ただしExcel2007が必要です。今回の質問の場合各セルの取りうる値は0~12の13種類あります。
A~Eの5つがありますからすべての組み合わせは13^5=371293通りです。(「^」はべき乗)
Excel2003までは最大行数は65536行ですから全ての組み合わせをシート上に作成できません。これが2007が必要な理由です。
新規シートのA1セルに以下の式を入れて、右方向にE列までと、下方向に371293行目までコピーします
=MOD(INT((ROW()-1)/13^(5-COLUMN())),13)
これで全ての組み合わせが表示できました。
この中で「A+B+C=12 かつ、A+D+E=12」のパターン数は
=SUMPRODUCT((A1:A371293+B1:B371293+C1:C371293=12)*(A1:A371293+D1:D371293+D1:D371293=12)*1)
で求まります。ただし処理時間はとんでもなくかかるかもしれません
また全ての組み合わせを表示したかったらF1セルに
=IF(AND(A1+B1+C1=12,A1+D1+E1=12),"○","")
を入力して最終行までコピーすれば、条件に合致するセルは「○」が表示されますから、フィルタでその行だけを表示させればよいでしょう。
今手元にあるExcelは2003なので0~8までの数字でしかテストできませんが(9^5=59049<65536行)、「A+B+C=12 かつ、A+D+E=12」は429パターンありました。
社内に1台しか2007が入っているPCが無いのですが、
何とか使わせてもらって確認してみたいと思います!
ありがとうございます。
こんなにパターンがあったんですね・・・。
ある程度条件がたくさんあるので、1000も無いと思ってました・・・。
とっても勉強になりました。
ありがとうございます!
No.1
- 回答日時:
参考URLをありがとうございます。
そんなに複雑な問題だったんですね^^;;;
数学的な知識は皆無のため、勉強しないといけないと
思いました・・・。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 高校数学の質問です 文字を消去したり、置き換えたりしたら、残った文字に範囲がつくかどうか調べるという 4 2023/05/03 18:18
- 数学 『4色問題③』 2 2022/11/14 00:31
- 数学 『◯と●の帰納法』 2 2023/04/19 20:57
- 高校 数学Aの問題です。 下記2パーンのとき、それぞれ何通りありますか? ①アルファベット大文字小文字のい 3 2023/02/08 16:32
- その他(Microsoft Office) エクセルの関数について 4 2022/07/30 16:42
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- その他(Microsoft Office) ある表(10桝程度)の中に数字が入っています。ダブっている数字を除く数字の合計数の計算方法 5 2023/02/15 11:33
- 数学 『数学的帰納法のトリセツ』 4 2022/06/06 07:34
- Excel(エクセル) エクセルの複数条件作成方法について 2 2023/01/23 21:38
- その他(教育・科学・学問) 【数学】数学に精通している方、博識な方にに質問です。 3 2022/08/12 15:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
【関数】先頭だけにある、半角...
-
エクセル 白黒印刷で白線を印刷...
-
Excelのチェックボックスの使い...
-
【関数】適切な文字数の数字を...
-
Excelのpivotについて質問です
-
Excel ピボットテーブルで日付...
-
LOOKUP関数を使えばいいのでし...
-
エクセル関数を教えてください
-
エクセルのセルに同じ大きさの...
-
UNIQUE関数が使えないバージョ...
-
excelの不要な行の削除ができな...
-
エクセルで「-0.0」と表示さ...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの関数について教えて...
-
Aというブックの1というシート...
-
【マクロ】シート名を取得する...
-
VBA Private Sub Worksheet_Cha...
-
VBA、Excelのworkbook.open に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報