Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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
代码说明:处理min和max-Javascript_Javascript - Fatal编程技术网

代码说明:处理min和max-Javascript

代码说明:处理min和max-Javascript,javascript,Javascript,我需要复习一下return语句在做什么。我知道它创造了一个范围,例如,5-15。但我不明白为什么我要从最小值中减去最大值,再加上+1,然后再加上+myMin。Math.random返回0到1之间的浮点数。例如,如果取1到10的范围。然后Math.random将返回最小值0和最大值1,然后将其乘以10-1=9。你得到0比9。但当您添加最小值时,它将增加到1到10。Math.random返回0到1之间的浮点数。例如,如果取1到10的范围。然后Math.random将返回最小值0和最大值1,然后将其乘

我需要复习一下return语句在做什么。我知道它创造了一个范围,例如,5-15。但我不明白为什么我要从最小值中减去最大值,再加上+1,然后再加上+myMin。

Math.random返回0到1之间的浮点数。例如,如果取1到10的范围。然后Math.random将返回最小值0和最大值1,然后将其乘以10-1=9。你得到0比9。但当您添加最小值时,它将增加到1到10。

Math.random返回0到1之间的浮点数。例如,如果取1到10的范围。然后Math.random将返回最小值0和最大值1,然后将其乘以10-1=9。你得到0比9。但当您添加最小值时,它将增加到1到10

但是我不明白为什么我要从最小值中减去最大值,再加上+1,然后再加上+myMin

首先请记住
Math.random()
返回的值的范围为
[0,1)

让我们从结尾开始:

  • +myMin
    用于确保结果大于或等于
    myMin
    。 假设
    Math.random()
    返回
    0
    。然后
    Math.floor(…)
    返回
    0
    。如果我们没有
    +myMin
    ,返回结果将是
    0
    ,而不是
    myMin

  • +1
    用于获取包含
    myMax
    的随机值。请记住
    Math.random()
    永远不会返回
    1
    ,只有接近
    1
    的值。即
    数学地板(Math.random()*myMax)
    永远不能是
    myMax
    ,除非我们添加
    1

  • myMax-myMin
    之所以完成,是因为我们在上面做了
    +myMin
    。我们必须考虑将结果增加
    myMin

    假设
    Math.random()
    返回
    0.5
    ,我们的范围是
    100-120
    。如果没有
    -myMin
    ,我们将得到

    function randomRange(myMin, myMax) {
    
    return Math.floor(Math.random() * (myMax - myMin + 1)) +myMin;
    
    }
    
    这明显大于
    120
    。如果我们包括
    -myMin

     Math.floor(0.5 * 120) + 100 = 60 + 100 = 160
    

    我们得到了<代码> 110 /代码>,这正好在我们的范围内(这是有意义的直觉,因为我们得到<代码> 0.5 /代码>作为一个随机值)。

但是我不明白为什么我要从最小值中减去最大值,再加上+1,然后再加上+myMin

首先请记住
Math.random()
返回的值的范围为
[0,1)

让我们从结尾开始:

  • +myMin
    用于确保结果大于或等于
    myMin
    。 假设
    Math.random()
    返回
    0
    。然后
    Math.floor(…)
    返回
    0
    。如果我们没有
    +myMin
    ,返回结果将是
    0
    ,而不是
    myMin

  • +1
    用于获取包含
    myMax
    的随机值。请记住
    Math.random()
    永远不会返回
    1
    ,只有接近
    1
    的值。即
    数学地板(Math.random()*myMax)
    永远不能是
    myMax
    ,除非我们添加
    1

  • myMax-myMin
    之所以完成,是因为我们在上面做了
    +myMin
    。我们必须考虑将结果增加
    myMin

    假设
    Math.random()
    返回
    0.5
    ,我们的范围是
    100-120
    。如果没有
    -myMin
    ,我们将得到

    function randomRange(myMin, myMax) {
    
    return Math.floor(Math.random() * (myMax - myMin + 1)) +myMin;
    
    }
    
    这明显大于
    120
    。如果我们包括
    -myMin

     Math.floor(0.5 * 120) + 100 = 60 + 100 = 160
    

    我们得到了<代码> 110 /代码>,这正好在我们的范围内(这是有意义的直觉,因为我们得到<代码> 0.5 /代码>作为一个随机值)。


校正-它不是创建一个范围,而是在给定的数字范围(最小值和最大值)之间生成一个随机整数

例如,(5,15)=(最小值,最大值)

将导致一个介于此范围之间的数字

代码说明:

 Math.floor(0.5 * (120 - 100)) + 100 = (0.5 * 20) + 100 = 110
让我们假设max和min都是=15

因此,上面的内容将类似于:

数学地板(数学随机()*(15-15+1))+15


这等于=15,因为0校正-它不是创建一个范围,而是在给定的数字范围(最小值和最大值)之间生成一个随机整数

例如,(5,15)=(最小值,最大值)

将导致一个介于此范围之间的数字

代码说明:

 Math.floor(0.5 * (120 - 100)) + 100 = (0.5 * 20) + 100 = 110
让我们假设max和min都是=15

因此,上面的内容将类似于:

数学地板(数学随机()*(15-15+1))+15


这等于=15,因为0通过调试器逐步完成。看看如果你不从最小值中减去最大值会发生什么。这正是我学习编程的方式;看着代码做它的事情,然后修改代码,看看它是如何改变的。这是基本的数学。在一张纸上运行几个案例。我想你知道w该
Math.random
返回一个
[0,1)
@torazaburo:好发现!我忘记了这个解释存在。请使用调试器进行调试。看看如果不从最小值中减去最大值或其他值会发生什么。这正是我学习如何编程的方式;观察代码的运行情况,然后修改代码以查看它是如何改变情况的。这是基本的数学。运行一些案例以了解n一张纸。我假设你知道
Math.random
返回一个介于
[0,1)
@torazaburo:好发现!我忘记了这个解释存在。实际上,它返回一个介于0和1之间的数字(JS没有“float”的概念),但不包括1。实际上,它返回一个数字(JS没有“float”的概念)介于0和1之间,但不包括1。