JavaScript 随机数生成详解:Math.random 与自定义算法

作者:小括号时间:2026-10-25 09:33:58浏览:134

本文详细介绍 JavaScript 中生成随机数的多种方法。重点解析 Math.random() 函数的返回值范围及如何生成指定区间的整数,包括使用 Math.floor 和 Math.ceil 的技巧。此外,还介绍了基于时间戳生成随机数的方案,以及经典的 Central Randomizer 算法和简洁的自定义随机数函数实现,帮助开发者在实际项目中灵活应用。

JavaScript 随机数基础

JavaScript 随机数基础


一、JavaScript 随机数函数 Math.random()

Math.random 方法详解


public static random() : Number



该方法返回一个伪随机数 n,其取值范围为 0 <= n < 1。之所以称为“伪随机”,是因为该数值在技术上是基于特定算法保密计算得出的,而非真正的随机源。



返回值说明


Number 类型,即一个浮点数字。



生成指定范围的随机数

生成指定范围的随机数


Math.random() 方法不接受参数,默认返回 0 到 1 之间的随机浮点数。若需生成 0 到 n 之间的随机整数,可采用以下公式:


具体格式如下:



Math.floor(Math.random() * n)


若要生成 m 到 n 之间的随机整数,可以使用如下公式:


Math.floor(Math.random() * (n - m + 1)) + m



JavaScript 随机数高级应用

其他随机数生成方法

自 JavaScript 诞生以来,多数浏览器都内置了随机数生成方法。例如:


var number = Math.random();


上述代码生成一个 0 到 1 之间的浮点数。


另一种方法是基于当前时间生成随机数。例如:


var now = new Date();


var number = now.getSeconds();


这将生成一个基于当前秒数的 0 到 59 之间的整数。


var now = new Date();


var number = now.getSeconds() % 43;


这将生成一个基于当前秒数取模后的 0 到 42 之间的整数。


下面介绍一个较为优秀的随机数生成程序,适用于多种场景。


<script language="JavaScript"><!--


// The Central Randomizer 1.3 (C) 1997 by Paul Houle


(houle@msc.cornell.edu)


// See: http://www.msc.cornell.edu/~houle/javascript/randomizer.html


rnd.today = new Date();


rnd.seed = rnd.today.getTime();


function rnd() {


rnd.seed = (rnd.seed * 9301 + 49297) % 233280;


return rnd.seed / (233280.0);


};

function rand(number) {


return Math.ceil(rnd() * number);


};

// end central randomizer. -->


</script>


详细出处参考:https://www.jb51.net/article/12566.htm




简洁的自定义随机数函数

如何轻松获取指定范围的随机数?经过对比,以下函数是目前网上最简洁实用的方案:


实例代码:
  

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]


代码说明:


代码如下:

 
<script>
// 声明一个随机数变量,默认为 1
var GetRandomn = 1;
// 获取随机范围内数值的函数
function GetRandom(n) { GetRandomn = Math.floor(Math.random() * n + 1) }
// 开始调用,获得一个 1-100 的随机数
GetRandom("100");
// 输出查看
document.write(GetRandomn)
</script>
代码是否相当简洁?GetRandomn 即为随机数变量,可被任意调用。
随机显示特效示例以下是一个随机显示特效的代码示例:
<script>
// 现在开始,首先获得一个 1 到 3 的随机数
GetRandom("3");
// 调用符合随机数的项目
switch (GetRandomn) {
case 1:
document.write("当随机数为 1 则显示本站")
break;
case 2:
document.write("当随机数为 2 则显示 www.jb51.net")
break;
} 
</script>


1

2 下一页阅读全文

作者最新文章