【現状】
以下のような機能をC#で実現したいのですが、方法(アルゴリズム)について総当たりしたパターンから指定条件に適用する組み合わせを羅列する以外の方法が思いついておりません。そうなると処理時間がかなりかかっていまうのでは?と思っています。
【実現したいこと】
・「あ」「い」「う」のグループがあり、各グループは共通する項目[A][B][C]を持つレコードを複数所持している。
・各グループから1レコードずつ選択し、各項目の値の合計値が指定した条件になる組み合わせを抽出したい。
条件例:
例1:[A]が100以上、[B]が150~200の間、[C]が5以下となるパターン
例2:[A]が50以上で、[B]x[C]が最大となるパターン
例3:[A]が10のレコードを2つ、[A]が20のレコードを1つ選択し、[B]の合計が最大となるパターン
・最終的にはグループは6個、項目は9個で実装したい。
【質問内容】
1.数学的な考え方で効率化できそうな気がするのですが、どのような方法について学べばよいでしょうか。
2.総当たりで作成しても各グループのレコード数が数百程度なら処理速度に問題はなさそうでしょうか。(ざっくりですみません)
以上、よろしくお願いいたします。