- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:m個の数字をn個のグループに分けるとき、)
m個の数字をn個のグループに分けるアルゴリズムはある?
このQ&Aのポイント
- m個の数字をn個のグループに分け、各グループの和が指定した比に一番近くなるようなアルゴリズムは存在するのでしょうか。
- 例えば、{1, 3, 4, 6}を和の比が1:2に一番近くなるように2つのグループに分けると、 {1, 4}, {3, 6}となります。
- アルゴリズム以外の考え方や、効率的な総当たり方法があれば教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
それは宿題ですか? NP問題? ナップサック問題? たぶん、これを簡単に解けるようなアルゴリズムを作れたら、世界的に有名になれるほどの問題です。(一部のマニアックな人たちの間だけですが・・・) 完全な正解ではなく、近似でよいのであれば、できるかもしれませんが。 総当たりで行う場合の効率よくやるやり方はわかりません。地道に総当たりするしかないと思います。(NP問題の反例は私には見つけられません。) 効率というのが数学的な効率ではなく、コンピュータ上の効率という意味であれば、いろいろとあると思いますが。メモリの配列の使い方とか。
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
あれ? 問題がおかしい. 比は r(1):r(2):...:r(n-1):r(n) ですか? そうじゃないと s(i), i ≦ i ≦ n にあいませんよね. で, 3つ以上のグループにわけるときに「一番近い」というのを定義する必要もあります. とりあえず n=2 に対してはナップサック問題になりそう. もしそうなら NP-困難だけど DP 使えば FPTAS までいけるかな.