【发布时间】:2017-03-28 14:28:22
【问题描述】:
我有一个包含随机数的数组:
var EqualMe = [Math.random(), Math.random(), Math.random(),Math.random()];
现在假设选择的数字是:0.4、0.3、0.2、0.1。我需要找到一种方法来制作算法,这将等于每个数字为 0.25(因为 (0.4+0.3+0.2+0.1)/4 = 0.25),我正试图以最快的方式通过 从数组中的每个数字中提取一个值到另一个。
所以对于这个例子来说,最短的方法是从 EqualMe[0] 中提取 0.15 到 EqualMe[3] 并从 EqualMe[1] 中提取 0.05 到 EqualMe[2],这样数组中的每个数字将是相同的 (0.25)。
我的问题是如何编写代码,当数组的大小可以是任何给定的选择(不仅仅是 4 个数字)并且数组中的值是完全随机的时,它可以找到提取值的最短方法,所以数字将与可能的最低提款完全相等?
请注意: 我需要为比特币钱包的货币兑换程序编写代码 每次我从一个钱包取钱到另一个钱包时,我都会损失费用 所以我需要从一个钱包取钱到另一个钱包 尽可能少的提款,因此所有钱包的总价值都相同
【问题讨论】:
-
所以你想用平均值替换每个元素?
-
我们不会为你做作业。
-
如果可以简单地用平均值替换值,为什么还需要“撤回值”?
-
@hindmost 不仅更换而且找到最快的退出方式
-
@epascarello 这不是一个家庭作业,它是我做的一个项目,通过从一个到另一个的取款将等于几个比特币钱包,但我希望它能够以最低的取款量工作
标签: javascript arrays algorithm