『壹』 使用js Math.random()函数生成n到m间的随机数字
摘要:
本文讲解如何使用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()
返回数字最接近的整数,四舍五入
『贰』 JS中,输出1-10之间的随机整数,用Math.random()咋搞呢
使用Math.floor(Math.random()*10+1)函数实现。
1、floor():返回小于等于x的最大整数。
2、函数返回一个浮点, 伪随机数在专范围[0,1),也就属是说,从0(包括0)往上,但是不包括1(排除1)。实现将初始种子选择到随机数生成算法,它不能被用户选择或重置。
实例演示如下:
1、html代码如下,绑定生成函数:
『叁』 javascript 如何生成不重复的随机数
Math.random()函数返回一个浮点, 伪随机数在范围[0,1)
得到两数之间的随机数:
functiongetRandomArbitrary(min,max){
returnMath.random()*(max-min)+min;}
得到一个两数之间的随机整数,包括两个数在内:
functiongetRandomIntInclusive(min,max){
min=Math.ceil(min);
max=Math.floor(max);
returnMath.floor(Math.random()*(max-min+1))+min;
『肆』 我想问下关于伪随机数学的问题
真正的随机数是没有办法获取的。所以,一般情况下都只能使用伪随机数来模拟随机过程。
一般的编程软件,它的伪随机数算法都能保证产生的序列周期很大,通常都大于10的9次方。现在随着计算机技术的算法的研究发展,不少伪随机数的周期已经远远大于这个数量级,甚至到了10的15到20次方。同时,伪随机数产生的起点,也就是种子可以通过热敏元件或者时间数据来产生,无法人为控制,使产生的数字序列更接近真随机状态。
因此,要掌握到算法及其规律,并进行所谓预测,条件必须是指导算法和种子。否则,即使是10的9次方的周期长度,按照老虎机按照每秒一次动作的速度来计算,也需要在老虎机上操作31年多,才能够找到完整的周期规律。这在现实中是不可能的!
『伍』 js生成随机数之random函数随机示例
js生成随机数可以使用JavaScript
Math.random()内置函数,下面有个不错的示例,大家内可以尝试操作下
JavaScript
Math.random()内置函数
random函数返回容值
返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1)
random函数示例
//返回随机数
document.write(Math.random());
//返回10-20的随机数
document.write(Math.random()*(20-10)+10);
//返回指定范围的随机数(m-n之间)的公式
document.write(Math.random()*(n-m)+m);
基于时间,亦可以产生随机数
代码如下:
var
now=new
Date();
var
number
=
now.getSeconds();
//这将产生一个基于目前时间的0到59的整数。
var
now=new
Date();
var
number
=
now.getSeconds()%43;
//这将产生一个基于目前时间的0到42的整数。
『陆』 怎么用js做随机点名
关键是随机数的实现(伪随机)
function myRand(start, end) {
return start + Math.round((Math.random() * (end - start)));
}
这个函数可以得到start到end之间(包括start和end)的随机数,然后根据随机数去点名
『柒』 求一个简单的js代码 随机输出0-10间的任意一个数!
功 能: 随机数发生器 用 法: int random(int num); 程序例: #include #include #include /* prints a random number in the range 0 to 99 */ int main(void) { randomize(); 随机数种子被初始化时
printf("Random number in the 0-99 range: %d\n", random (100)); return 0; } 注意: 在使用Random之前需要使用Randomize语句进行随机数种子的初始化。 例如: var a,i,,j:integer; begin {RANDOMIZE;} for j:=1 to 2 do begin for i:=1 to 10 do begin a:=random(1000); writeln(a); end; writeln; end; end. 这两组数据输出的是一样的结果,如果在程序前加上RANDOMIZE(即把大括号去掉)再运行程序,输出数据就不一样了. RANDOM产生的是伪随机数或者说是用一种复杂的方法计算得到的序列值,因此每次运算时需要一个不同的种子值。种子值不同,得到的序列值也不同。因此也就是真正的随机数了。这也正是RANDOMIZE随机初始化的作用。 VB里用 NEW RANDOM()来表示初始化。