• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数値を複数の群に分ける最適な組み合わせを求める方法)

数値を複数の群に分ける最適な組み合わせを求める方法

このQ&Aのポイント
  • 数値を複数の群に分ける方法について説明します。与えられた数値列で隣り合う数値しか同じ群に含めることはできず、各群の合計値が最も均等になる組み合わせを求めることが目標です。
  • 例えば、数値列{5,2,7,12,6,15,4}を3つの群に分ける場合、{5,2,7},{12},{6,15,4}という組み合わせが最も均等です。
  • 実際の問題では、組み合わせの数が増えると計算時間に影響するため、全ての組み合わせを試さずに最適な組み合わせを求める方法を提示してください。

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

  • ベストアンサー
回答No.27

>回答No.23 amanojaku1 「2018/06/15 03:48:47」の時点で修正しました。 それ以前にコピーしている場合は注意して下さい。 数値を複数の群に分ける最適な組み合わせを求める方法 http://ashtarte.pa.land.to/utf8/smt.cgi?r+sara/&bid+000000DC&tsn+000000DC&bts+2018/06/15%2002%3A04%3A46&

katorea21
質問者

お礼

コメント追加して頂きありがとうございます。今頑張って理解しているところですが、何となく分かってきました。 それにしても2進数の数学的特徴をうまくこの問題に当てはめるという発想が凄いですね。問題の本質は順列のパターンを網羅することですが、私は再帰を使うイメージしかなかったです。

その他の回答 (91)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.1

>考え方だけでも提示頂ければと思います。 貼付画像は手作業で作成したものです。 同等の組み合わせ配列を配列変数に作成すれば判断できるはずです。 元の配列は大きくなれば作業に必要な配列が増えますので効率の良いアルゴリズムを考えてみると良いでしょう。 プログラムを組むときにフローチャートを書くと処理の誤りを防げると思います。

katorea21
質問者

お礼

ご回答ありがとうございます。 お聞きしたかったのは、その組み合わせを網羅するコードはCでどのように書けば良いかということでした。 さらに突っ込んで、全組み合わせを網羅せずに済む方法や、「均等」という概念をより数学的な条件に置き換えて効率的なアルゴリズムが組めないか考えて頂けると助かります。

関連するQ&A