gpt4 book ai didi

Javascript 随机值与某个数字相加

转载 作者:行者123 更新时间:2023-11-28 00:54:28 25 4
gpt4 key购买 nike

我有一个范围从零到无穷大的数字数组。我需要生成低于数组中数字的随机数,每个数字一个。例如,如果我有数字:

[10, 5, 0, 7]

输出可以是以下任何一个:

[5, 3, 0, 6] or [1, 0, 0, 7] or [10, 5, 0, 7]

这很简单,但我的问题在于下一部分。我必须确保这些数字加起来达到指定值。例如,相同的第一个数组可以生成:

[4, 3, 0, 1] or [8, 0, 0, 0]

总值(value)为8。

经过一些研究,我发现this post但遗憾的是,它没有包含每个值的限制。相反,它有一个总数,并根据该总数生成一组数字。我需要所有这些数字都小于输入数组的数字。使用 Jquery 的 each 循环,您可以创建一个小于相应数字的值,但我如何合并总值?

如果有人可以修改该帖子以具有三个值,即总计、最大值和最小值,我们将非常感激。至此,我一无所知。

最佳答案

这是一个基本的解决方案。请注意,我设置了 maxLoops,否则该函数可能会永远运行。

function randomize(array, total){
var maxLoops = 100, randomized;
do{
randomized = array.map(function(value){
return Math.floor(Math.random()*(value+1));
});
maxLoops--;
}while(maxLoops > 0 && randomized.reduce(function(a, b){ return a+b; }) !== total);

return randomized;
}

var test = randomize([10, 5, 0, 7], 8);
console.log(test);

http://jsfiddle.net/fx7a1w28/

关于Javascript 随机值与某个数字相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26393024/

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