如何在Javascript中的两个指定变量之间生成随机整数,例如x = 4并y = 8输出4,5,6,7,8中的任何一个?
我需要使用JavaScript创建一个介于0.0200和0.120之间的随机数.我该怎么做?
我们可以很容易地得到所需范围内的随机浮点数[X,Y)(注意X是包含的,Y是独占的),下面列出了函数,因为Math.random()(大多数伪随机数生成器,AFAIK)产生的数字在[0,1):
function randomInRange(min, max) {
return Math.random() * (max-min) + min;
}
// Notice that we can get "min" exactly but never "max".
Run Code Online (Sandbox Code Playgroud)
我们怎样才能得到一个包含两个边界的期望范围内的随机数,即[X,Y]?
我想我们可以Math.random()通过"滚动" IEE-754浮点双精度的位来"增加"我们的值(或等效),将最大可能值精确地设置为1.0,但这似乎很难实现,特别是语言不适合比特操纵.有没有更简单的方法?
(顺便说一句,为什么随机数生成器会产生数字[0,1)而不是[0,1]?)
[编辑]请注意,我没有必要这样做,我完全清楚这种区别是迂腐的.只是好奇并希望得到一些有趣的答案.如果这个问题不合适,请随意投票结束.
我想创建一个程序,应该打印出最简单的数学表达形式,如(21 + 13)*56使用随机数.1到100,程序必须采用一个级别参数,该级别确定生成的等式的长度,例如:
游戏必须产生具有加号+和乘法*运算符的方程式,如(21 + 13)*56.(使用括号)
----level 2
75 - 54 = 21
62 + 15 = 77
88 / 22 = 4
93 + 22 = 115
90 * 11 = 990
--level 3
( 21 + 13 ) * 56 = 1904
82 - 19 + 16 = 79
51 * ( 68 - 2 ) = 3366
Run Code Online (Sandbox Code Playgroud)
输入将是形式:例如
level 3
Run Code Online (Sandbox Code Playgroud)
输出应该是:
( 21 + 13 ) * 56 …Run Code Online (Sandbox Code Playgroud)