本文详细解析 JavaScript 中 Math.random() 函数生成指定范围随机数的原理,涵盖从0到n及m到n的公式推导。同时介绍基于时间的随机数生成技巧,并对比 VBScript (ASP) 中 Randomize 函数的应用。文章提供多种代码实例,包括简易生成器、中心随机化算法及实际特效演示,帮助开发者掌握前后端随机数的高级应用。
JavaScript 随机数生成原理与公式
生成指定范围的随机数
Math.random() 方法不接受参数,其返回值是介于 0 和 1 之间的随机浮点数。若需生成 0 到 n 之间的随机整数,可采用特定格式进行转换。
具体实现方式如下所示:
Math.floor(Math.random()*n)
如果需要生成介于 m 到 n 之间的随机数,计算公式调整为:
Math.floor(Math.random()*n)+m
以下是具体的应用示例:
[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]
javascript 随机数 高级应用
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>二、vbscript(asp) 随机数
VBScript (ASP) 随机数生成方法
vbs生成随机数
一个无指定范围的随机数
代码如下:
Function GetRandomize(numstr)
Randomize
GetRandomize = Int((numstr * Rnd) + 1)
End Function生成指定范围的随机数
代码如下:
Function MyRnd(NumMin,NumMax)
Randomize
MyRnd = Int(Rnd * (NumMax - NumMin + 1)) + NumMin
End Function下面是一些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> 演示代码:
[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]