【发布时间】:2017-07-30 00:36:33
【问题描述】:
使用 JavaScript,我将如何生成 30 个随机整数并使这 30 个整数的总和为 60000?我需要脚本在每次运行时生成一组不同的数字,确保总数始终为 60000
var n = 30;
var total = 60000;
var min = 10;
var max = 5000;
for (i = 0; i < n; i++) {
// Math.floor(Math.random()*(max-min+1)+min); ??
}
为了避免数字过大和过小,可能需要最小值和最大值
【问题讨论】:
-
是的。不是语言,而是逻辑。一旦你有了算法,你就可以用任何语言实现这一点。另外,很抱歉,如果这很粗鲁,但是您的代表的用户应该知道问题的基本部分
-
您对数字的范围或统一性还有其他要求吗?使所有数字完全随机有点困难,因为如果您生成 29 个数字,最后一个数字就不能再随机了,因为它必须正好是 60000-(前 29 个数字的总和)。如果您想要真正的随机数和分布,则必须采用其他方法。
-
无其他要求。在每个循环之后,您不能将总数减去前一个随机整数吗?当 n = 30 时。余数 = 60000 - 29 个整数
-
是的,就像我说的。最后一个数字不会是随机的。平均而言,它可能比其他数字小得多或大得多。
-
根据结果的一致性,您可以提出一些动态规划解决方案,根据您返回的内容,将循环的每次迭代中的随机数限制在某个范围内。
标签: javascript html integer