前提・実現したいこと
平均的になるようにデータを振り分けたい
例)
テーブルA,B,C,Dにそれぞれ20件,30件,50件,100件データが入っているとします。
テーブルXに100件データがありA,B,C,Dに振り分ける場合
テーブルA,B,C,Dが出来るだけ均等になるようにしたいのですが
どのようなアルゴリズムが考えられるでしょうか。
私が思いつく限りでは、
A,B,C,Dの件数を取得して一番小さいものに1件づつ登録していく方法なのですが
他に方法はないものかと思っています。
出来ればAに何件、Bに何件と計算する方法があれば教えて頂きたいです。
以上よろしくお願いします。
■■仕様
いろいろご指摘を頂いたので具体例を追記します。
まず、A,B,C,Dからデータを取り出すことは出来ません。XをA,B,C,Dに振り分けるのみです。
毎日Xは増えますが、増える件数は変わります。
1日目:X=100件とすると
A,B,C,D=67,67,66,100
2日目:X=50だとすると
A,B,C,D=84,83,83,100
3日目:X=100だとすると
A,B,C,D=113,113,112,112
という感じです。
mts10806さんからのご指摘のあった
「A~Dが全て八百屋でX配送センターからキャベツが100個くるから」
というのがすごく分かりやすいです。
これが毎日Xセンターから届くのでA~Dの店舗のキャベツの在庫が均等になるようにしたいといった感じです。A~Dの在庫数は事前に分かります。
キャベツは売れるし、他のセンターから個別に入荷する場合もありますので
Xセンターで在庫数を出来るだけ均等にしたいといった内容です。
以上よろしくお願いします。

回答9件
あなたの回答
tips
プレビュー