JS实现使用Math.random()函数生成n到m间的随机数字

更新日期: 2019-10-13阅读: 2.2k标签: Math

Math.random()函数返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1)


生成n-m,包含n但不包含m的整数: 

第一步算出 m-n的值,假设等于w 

第二步Math.random()*w 

第三步Math.random()*w+n 第四步parseInt(Math.random()*w+n, 10)


生成n-m,不包含n但包含m的整数:​ 

第一步算出 m-n的值,假设等于w 

第二步Math.random()*w 

第三步Math.random()*w+n 第四步Math.floor(Math.random()*w+n) + 1


生成n-m,不包含n和m的整数:

第一步算出 m-n-2的值,假设等于w 

第二步Math.random()*w 

第三步Math.random()*w+n +1 

第四步Math.round(Math.random()*w+n+1) 或者 Math.ceil(Math.random()*w+n+1)


生成n-m,包含n和m的随机数:

第一步算出 m-n的值,假设等于w 

第二步Math.random()*w 

第三步Math.random()*w+n 

第四步Math.round(Math.random()*w+n) 或者 Math.ceil(Math.random()*w+n)


例子

生成800-1500的随机整数,包含800和1500,即[800,1500],代码如下:

// n = 800; m = 1500
// m - n = 1500-800 = 700
// Math.random()*700
// Math.random()*700 + 800
var num = Math.round(Math.random()*700 + 800);


补充:   

Math.ceil() 返回大于等于数字参数的最小整数(取整函数),对数字进行上舍入

Math.floor() 返回小于等于数字参数的最大整数,对数字进行下舍入 

Math.round() 返回数字最接近的整数,四舍五入


链接: https://www.fly63.com/article/detial/5973

JavaScript Math对象中Math.round()四舍五入

s中Math.round()是一个数值实现“四舍五入”的方法,在msdn和w3school文档中是理解为:把一个数字舍入为最接近的整数。在我们实际应用中:math.round(-11.6)的结果为-12这个好理解,但是math.round(-11.5)返回值为什么是-11而不是-12呢?

Js Math对象 abs() 方法

语法Math.abs(x) // 必需。必须是一个数值。示例,在项目中使用的方法 上传图片;关键代码

Js随机Math.random()

Math.random() 返回 0(包括) 至 1(不包括) 之间的随机数:Math.random() 与 Math.floor() 一起使用用于返回随机整数。正如你从上面的例子看到的,创建一个随机函数用于生成所有随机整数是一个好主意。

Javascript中Math.max和Math.max.apply的区别和用法

最近在做一个小案例的时候遇到了Math.max.apply这么一个用法,之前很少遇到过感觉挺有趣的,就记录一下。

Js中Math常用方法整理

JavaScript中的math 对让我们能够对执行一些数学操作。 它具有数学常数和函数的属性和方法。 在今天的文章中将介绍 Math对象的一些有用方法。Math.min()是 JS 数学库中的函数,用于将所有传递的值中的最小值返回给该方法。

为什么不带参数的 Math.max() 返回-Infinity

Math.max() 是 JS 内置的方法,可以从传入的参数中,返回最大的一个。如果Math.max()只使用一个参数,结果是怎么样的?正如预期的那样,一个数字的最大值就是它本身。

深入JS getRandomValue和Math.random方法

提到 Math.random() 的安全风险,有开发人员会说因为 Math.random() 返回的是伪随机数。这个解释似是而非,和伪随机数没有关系, getRandomValue() 方法返回的也是伪随机数。

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!