gpt4 book ai didi

excel - 将数字分组,使它们的总和之差最小

转载 作者:行者123 更新时间:2023-12-04 01:47:10 25 4
gpt4 key购买 nike

我发现了一些相似的话题,但我相信我的话题有点独特。这将很难写,所以请耐心等待。

我有 10 个帐户,每个帐户都有一个不能拆分的静态编号。我有 3 名员工需要尽可能均匀地拆分这些帐户。他们不能共享一个帐户。

例如:

(A)lpha    = 15    
(B)eta = 30
(C)harlie = 22
(D)elta = 19
(E)cho = 28
(F)ranklin = 3
(G)roto = 7
(H)enry = 28
(I)ndia = 38
(J)uliet = 48

总和 = 238。在完美世界中,2 个人会得到 79,一个人会得到 80。但是,请记住,我们不能拆分一个帐户,因此我们需要将帐户加在一起以尽可能接近平均尽可能传播。

我需要一个公式来解决这个问题,因为这种情况经常发生,需要一些时间才能弄清楚。我相信最好使用辅助列来执行此操作。

我最接近的是:

FHJ  = 79
ABCG = 74
DEI = 85

但由于这种情况会反复发生并且可能会发生在更多的帐户上,所以我需要一些可以反复使用的东西。

最佳答案

另一个不太复杂但近似的解决方案是

  1. 将您的帐户从大到小排序。
  2. 开始将数字分为 3 组(A、B、C)
    • 从 3 个最高的数字(48|J38|I30|B)开始,分为 A、B 和C
    • 下一个最高数字 (28|E) 进入总和最低的组 (C)
    • 下一个最高数字 (28|H) 进入总和最低的组 (B)
    • 等等……

你应该这样结束:

enter image description here

这与您的手动解决方案不同,但更接近。如果您看到差异:

  • 上面的解:81 - 77 = 4
  • 您的手动解决方案:85 - 74 = 11

此算法是一种近似算法,它不会总是找到最佳解决方案,但如果最低和最高数字之间的差异不是太大,那么结果非常好接近最佳解决方案。

关于excel - 将数字分组,使它们的总和之差最小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42928710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com