如何在三个一维单元中分布一组数字以得出最佳解决方案

时间:2019-07-19 16:02:20

标签: javascript

这里是我的问题(答案必须使用JavaScript):我有三个人,每个人都有一个数字。可以这样说:

  • 名称1:加里
  • Name1_value:5420000
  • 姓名2:约翰
  • Name2_value:6390000
  • Name3:Susan
  • Name3_value:5715000

现在我得到了十二个具有以下数量和值的盒子

  • Box_type_1_value:25000
  • Box_type_1_quantity:6
  • Box_type_2_value:50000
  • Box_type_2_quantity:5
  • Box_type_3_value:250000
  • Box_type_3_quantity:1

在此情况下:

  • 每个人的“价值”都不能低于5,000,000。
  • 一旦每个人获得的500,000美元的附加价值超过5,000,000,就可以从该人“提取” 500,000美元的价值。例如,根据上述示例,在没有向John分发任何框的情况下,他已经有两个可用的“提取”。
  • 这些“提取”只能精确地以500,000的量发生。
  • 目标是在三个人之间最佳地分配盒子,从而通过分配来实现最大程度的“提取”。
  • 并非所有框都需要使用。

这不是背包问题,也不是垃圾箱包装问题。我很难用JavaScript弄清楚它。任何帮助将不胜感激。

编辑:这是一个示例:

“能否提供一个示例,说明发行和提取的工作方式?”是。在上述示例中,Gary当前的值为5,420,000。如果我们向他分发五个50,000个值箱中的一个,则他有5,470,000.00。然后,如果我们向他分发六个25,000个值箱之一,则他的值为5,495,000.00。如果我们再向他分发六个25,000个值箱中的另一个,则他的值为5,520,000。由于他现在已经在500万的基础上增加了500,000,因此我们可以对Gary进行一次“提取”。然后,我们从加里(Gary)提取了500,000个值,剩下他(5,020,000)个值,现在我们对Gary的提取总量等于1。

此外,在上面的示例中,John在5,000,000以上已经有两个500,000增量,还有一些剩余。因此,无需将任何盒子分发给John,我们就可以提取他两次。因此6,390,000-500,000-500,000 = 5,390,000。因此,我们对约翰的总抽取为2。

苏珊(Susan)比5,000,000高出500,000,因此我们可以提取她一次而无需将任何盒子分配给她。 5,715,000-500,000 = 5,215,000。因此,我们对苏珊的总提取量为1。

加里1 +约翰2 +苏珊1 = 4次提取。

目标是弄清楚要分配给每个人多少个盒子,以便在所有三个人中实现最大的提取价值。

0 个答案:

没有答案