Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中随机分配数字_Javascript_Algorithm - Fatal编程技术网

在javascript中随机分配数字

在javascript中随机分配数字,javascript,algorithm,Javascript,Algorithm,我有40个水果,我想随机分发并以10的长度数组存储。 请参阅下面的代码输入 var fruits = 40; var arr = []; 我想要这样的输出 arr=[2,5,1,0,0,3,6,10,0,13] 数组的10个位置应随机填充,但值的加法应为40。递归分治方法: function distribute(length, value) { if (length <= 1) return [value]; var half = Math.floor

我有40个水果,我想随机分发并以10的长度数组存储。
请参阅下面的代码输入

var fruits = 40;
var arr = [];
我想要这样的输出 arr=[2,5,1,0,0,3,6,10,0,13]


数组的10个位置应随机填充,但值的加法应为40。

递归分治方法:

function distribute(length, value) {
    if (length <= 1)
        return [value];
    var half = Math.floor(length / 2),
        dist = Math.floor(Math.random() * value);
    return distribute(half, dist).concat(distribute(length-half, value-dist));
}
函数分布(长度、值){

如果你试过什么东西?“蓝脚”这个词对我来说并不是太“宽”。“JA”是的。Bergi给出的答案是完全正确的。@萨尔玛纳在解决这个问题时没有明显的尝试,通常是在太宽的范畴里提出问题。“蓝脚是预期的输出,我不明白为什么你会认为它太宽了。”“太宽了"原因本身太宽泛了。它给出了范围错误
RangeError:超过了最大调用堆栈大小
@KhawerZeshan你确定你用非零整数
长度
调用它吗?是的@KhawerZeshan哦,我是瞎子。感谢你实际试用了这段代码-显然4年来没有人这么做过!一半
不应该是c我猜是随机计算的。@Bergi现在这个工作正常还是有更好的解决方案?