我的目标是在T
件之间分割总计N
,其中每件事物的重量w[i]
介于0和1之间。
这里有两件事同时发生:
w[i] × T
。但是,有一些怪癖:
所有这些,我有两个要求:
什么是最好的JavaScript解决方案,假设我有这样的功能:
/**
* Calculates the Weighted Distribution between an arbitrary number
* of people, and returns it.
*
* @param array weights The weights for each thing (Sums up to nearly 1)
* @param int total The total amount to be split (in cents)
*
* @return array The Weighted Distribution (each element is in cents)
*/
function calc(weights, total)
{
// Determine the total number of Things
var things = weights.length;
/* Do stuff */
return distribution;
}
请注意,我使用美分发送所有内容。这应该有助于计算过程,因为任何表示为浮点数的货币都是无效的。
答案 0 :(得分:0)
有点不清楚你的问题是什么。然而,对于精确计算权重的事情,除以美分等,你最好在计算中使用小数,而不是浮点数,如https://mikemcl.github.io/decimal.js/