Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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_Function_Math - Fatal编程技术网

最小最大范围JavaScript

最小最大范围JavaScript,javascript,function,math,Javascript,Function,Math,请问,有谁能解释一下为什么我们需要使用下面的代码(或公式)定义最小和最大范围 更明确地说,为什么要从max中减去min+1,在parenthisis之后添加min呢 提前感谢。首先必须解决的是“1到5之间的整数”的含义。从技术上讲,只有2、3和4介于两者之间,但您可能需要1、2、3、4或5 该函数为您提供一个介于0.0000000000000000和0.99999999998之间的数字 要从该值中获取整数,例如20到30之间的整数,必须首先计算范围:range=max-min。然后将范围(在本例

请问,有谁能解释一下为什么我们需要使用下面的代码(或公式)定义最小和最大范围

更明确地说,为什么要从max中减去min+1,在parenthisis之后添加min呢


提前感谢。

首先必须解决的是“1到5之间的整数”的含义。从技术上讲,只有2、3和4介于两者之间,但您可能需要1、2、3、4或5

该函数为您提供一个介于0.0000000000000000和0.99999999998之间的数字

要从该值中获取整数,例如20到30之间的整数,必须首先计算范围:
range=max-min
。然后将范围(在本例中为30-20=10)与Math.random的结果相乘,结果被舍入(向下舍入),舍入结果为0、1、2、3、4、5、6、7、8或9。请注意,缺少数字10。然后,将最小值(20)相加,结果为20、21、22、23、24、25、26、27、28或29

如果range=10,再乘以Math.random()能给你的最大值,你得到9.9999999999998,当你在上面做Math.floor时,它变成9。如果范围是10,你可以得到0,1,2,3,4,5,6,7,8,9。请注意,您永远无法获得值10

因此,这取决于您对“20到30之间的整数”的定义。是否应包括最高数字(30)

如果它应该包含最高的数字,则需要向范围中添加一个(就像代码一样)。这就是为什么计算范围为
(max-min+1)

随机函数(最小值、最大值){
让范围=最大-最小+1;
返回Math.floor(Math.random()*范围)+min
}
设定间隔(
函数(){
设min=Math.min(input1.value,input2.value);
设max=Math.max(input1.value,input2.value);
outputRange.value=最大值-最小值+1;
设li=document.createElement('li');
li.textContent=随机(最小值、最大值);
output.insertBefore(li,output.firstChild);
while(output.childrence.length>10){
output.removeChild(output.lastChild);
}
},
200
)
label{display:block}
标签span{显示:内联块;宽度:5em;}
标签跨度,输入,输出{文本对齐:右;}
输入,输出{显示:内联块;宽度:5em;}
Min:
最大值:
范围:

    Math.random()
    为您提供一个介于0和1之间的数字。如果你想要一个介于到更大值之间的整数,你必须将它乘以范围,然后加上最小值<代码>最小值=0,最大值=9。。范围为
    10
    <代码>(9-0)+1=10,现在是多个兰特,范围。0-1,最后添加最小值,因为我们可能不会从0开始。我很高兴您得到了帮助,@Hacene.N。我们在某些方面都是初学者。
    Math.floor(Math.random() * (max - min + 1)) + min