JavaScript Math.random() 生成指定范围随机整数详解

作者:异步漫步时间:2026-10-28 14:44:00浏览:503

本文详细解析如何利用 JavaScript 的 Math.random() 函数生成指定范围 [n, m] 内的随机整数。文章分四种情况(含左不含右、不含左含右、不含两端、含两端)逐步推导算法,并结合具体代码示例说明 Math.round、Math.floor 和 Math.ceil 的应用,帮助开发者掌握验证码等场景下的随机数生成技巧。

摘要:

Math.random() 基础与区间生成原理

本文阐述利用js生成n至m区间内随机数的方法,旨在为后续js生成验证码功能奠定基础。

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。

代码如下:

1500-800 = 700
Math.random()*700
var num = Math.random()*700 + 800;
num = parseInt(num, 10);

仅需简单四步即可完成。



相关取整函数说明与工具推荐

补充:

Math.ceil()函数返回大于或等于给定数字参数的最小整数,用于数字的上舍入操作。

Math.floor()函数返回小于或等于给定数字参数的最大整数,用于数字的下舍入操作。

Math.round()函数返回与给定数字最接近的整数,执行四舍五入操作。

PS:此处提供两款相关在线工具供参考使用:

在线随机数字/字符串生成工具: http://tools.jb51.net/aideddesign/suijishu

高强度密码生成器: http://tools.jb51.net/password/CreateStrongPassword

作者最新文章