代码说明:处理min和max-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,然后将其乘以10-1=9。你得到0比9。但当您添加最小值时,它将增加到1到10 但是我不明白为什么我要从最小值中减去最大值,再加上+1,然后再加上+myMin 首先请记住代码说明:处理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,然后将其乘
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 /代码>作为一个随机值)。
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 /代码>作为一个随机值)。
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。