プロが教えるわが家の防犯対策術!

画像のような、表があります。グループごとに合計を出して、全体の合計平均を出しています。
左の表を元にして、右の表のように黄色のものを入れ替えています。
その時にグループの平均が変わっています。

やりたいことと条件について

1.グループの全体の平均にグループごとの合計を近づける時の計算式を作りたい
2.この表にある数字しか使えないとすること
3.この表にあるグループの数字を入れ替えることで、全体平均に近づけるようにする

「この表の合計平均に近づける計算式を作りた」の質問画像

質問者からの補足コメント

  • 公式のような計算式はできませんか。それは無理でしょうか。お伺いします。

      補足日時:2019/03/24 10:29
  • 公式のような計算式はできませんか。それは無理でしょうか。お伺いします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2019/03/24 10:29

A 回答 (3件)

公式というか、アルゴリズムをもう少し細かく書いておきましょうか。


(1) 合計が最大のグループと合計が最小のグループを見つける。
(2) ((最大の合計)-(最小の合計))/2 を計算して、その値を「補正値」とする。
(3) 合計が最小のグループの各データに補正値を足して、仮のグループを作る。
(4) 仮のグループと合計が最大のグループの間で、差が最も小さいデータを見つける。
(5) (3)(4)で対応する合計最大グループのデータと合計最小グループのデータを交換する。
(6) (5)で合計のバラつきが却って大きくなったら、最後の交換をキャンセルして終了。
(7) (1)へ戻って繰り返す。
    • good
    • 0
この回答へのお礼

アルゴリズムですね。フローチャートを作ってもう一度よく考えてみます。

お礼日時:2019/03/24 15:40

>公式のような計算式はできませんか。

それは無理でしょうか。お伺いします。

それは無理です。
「何がしたいか」を明確にして、それを実現する「アルゴリズム」を考えて、その「手順」を導き出すしかありません。内容によっては「プログラム化」「公式化」できるかもしれません。

全体の「平均」と「グループの平均」が同じになるようにならしたいということであれば

(1) 全体の「平均」を計算する。

(2) そのグループの「個数」に合わせて、「全体の平均」×「個数」で、そのグループの「目標とする合計数」を計算する。

(3) (2)の「目標とする合計数」と「そのグループの実際の合計値」の差を見る。

(4) (3) の差が最も小さくなるような交換の対を探す。(ただしすでに確定したグループとの交換はしない)
 これは人間系で探さないといけませんね。「そのグループの実際の合計値」を「大きくしたい」のか「小さくしたい」のかによって、「対の探し方」の着眼点が決まります。
 「対」の選び方は何通りかあるはずなので、その「どれを選ぶか」を「差が最小となるもの」とすればよいでしょう。面倒なら、「エイヤッ」と選ぶのが人間系の「融通が利く」ところです。

(5) 以上をトライアンドエラーして、最適な分配の仕方を探す。

(6) このやり方だと、(4) の交換先が限られ、最後のグループでは「交換相手」が探せないことになります。そのため、最後のグループの一つ手前では、「両方のグループで、(3) の差が最も小さくなる」ような対を探さないといけません。
 一度入れ替えを行った後に、(3)~(5) をもう1回やってみるというやり方もあります。

上記のような「何をすればよいか」という「アルゴリズム」「戦略」を、まず見つける必要があります。
小学校で「プログラミングを教える」という動きもあるようですが、「アルゴリズムを考える」頭のない人にプログラミングを教えても無駄だと思います。
(日本語で満足に「会話」や「考えを伝える」ことのできない人に英語を教えても無駄なのと同じ)
    • good
    • 0
この回答へのお礼

ありがとうございました。アルゴリズムですね。フローチャートを作ってもう一度よく考えてみます。

お礼日時:2019/03/24 15:49

合計が一番大きいグループと一番小さいグループの間で


合計の差が最も小さくなるような入れ替えを繰り返す。
(な,こ)を交換。
(ま,て)を交換。
(ね,え)を交換。
(う,そ)を交換。
(の,も)を交換。
(は,し)を交換。
ここまでやると、A,B,C,Dの合計が、それぞれ
866.6 867 867.3 869.3 になる。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございました、できました。難しいことがよく分かりました。

お礼日時:2019/03/24 15:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!