JavaScript生成指定范围的随机数和随机数序列
来源:互联网 发布:征途 巨人网络 编辑:程序博客网 时间:2024/05/19 16:05
在JavaScript中我们经常使用Math.random()方法生成随机数,但是该方法生成的随机数只是0-1之间的随机数。先看如下常用方法的特征:
1.Math.random(); 结果为0-1间的一个随机数(包括0,不包括1)
2.Math.floor(num); 参数num为一个数值,函数结果为num的整数部分。与取整数的parseInt(num)方法一样。
3.Math.round(num); 参数num为一个数值,函数结果为num四舍五入后的整数。
4.Math.ceil(num); 返回大于等于n的最小整数。
生成指定范围随机数:
包含最小值不包含最大值的情况:
parseInt(num)取整,将传入的num向小的整数转化。将Math.random()乘以最大和最小的差值,在用parseInt处理(注意此时的范围是【0-差值)),再加上最小值,就能得到包括最小值但不包括最大值的整数。
获取包含最小值但不包括最大值的随机数,用如下函数实现:
function getRandom1(start, end) {
var length = end - start;
var num = parseInt(Math.random() * (length) + start);
return num;
}
包括最大值但不包含最小值的情况:
Math.ceil(num)取得大于等于num的最小整数,也就是将传入的num向大的整数转化。将Math.random()乘以最大和最小的差值,在用Math.ceil()处理(注意此时的范围是(0-差值】),在加上最小值,就能得到不包括最小值但包括最大值的整数。也就是将上面情况的parseInt改为Math.ceil()
获取包含最大值但不包括最小值的随机数,用如下函数实现:
function getRandom1(start, end) {
var length = end - start;
var num = Math.ceil(Math.random() * (length) + start);
return num;
}
最大值和最小值都包含的情况:
最大值和最小值都包含,此时可取值的范围相比于上述两种情况已经 扩大1。在生成随机数阶段,就要将可能生成随机数的范围扩大1。使用parseInt向小的值取整可行,用Math.ceil(num)往大的值转化也可以(转化后需要-1)。不管采用哪种方式,关键在于生成随机数阶段将范围加1.
采用parseInt的方法:
function getRandom1(start, end) {
var length = end - start + 1;
var num = parseInt(Math.random() * (length) + end);
return num;
}
一些时候,仅仅生成随机数是不够的,还需要将指定范围的数值,按照随机顺序排列。我们将这个问题转化为生成随机数后加入数组并避免重复的问题。每次循环顺序生成的数是随机的,按照顺序加入数组,以此实现数值大小的随机排列。
生成指定范围的随机数序列(左右包含):
循环生成随机数,生成之后到已有数组中查找,如果存在,将标记变为false表示产生的随机数重复,根据标记值来决定是否加入数组。加入成功,则数组下标index(决定长度)自增,满足条件退出循环。
function getOrder(start, end) { var length = end - start; var myorder = new Array(); var index = 0; while (index < length+1) { var flag = true; var num = parseInt(Math.random() * (length + 1)); for (var i in myorder) { if (myorder[i] == num) { flag = false; } } if (flag == true) { myorder[index] = num; index++; } } alert(myorder.length); alert(myorder); } getOrder(5, 10);
如上调用函数:getOrder(5,10);得到5,6,7,8,9,10这六个数的随机序列:运行结果如下
8,6,5,9,7,10 每次运行结果不一样
0 0
- JavaScript生成指定范围的随机数和随机数序列
- JavaScript生成指定范围随机数和随机序列
- 生成指定范围的随机数
- 生成指定范围的随机数
- 生成指定范围的随机数
- 生成指定范围的随机数
- Javascript 生成指定范围数值随机数
- Javascript 生成指定范围数值随机数
- Javascript 生成指定范围数值随机数
- Javascript 生成指定范围数值随机数
- Javascript 生成指定范围数值随机数(转)
- SQL Server生成指定范围的随机数
- java生成指定范围的随机数
- java生成指定范围的随机数
- java生成指定范围的随机数
- java生成指定范围的随机数
- java生成指定范围的随机数
- java生成指定范围的随机数
- C语言+easyX界面库实现贪吃蛇
- java连接Oracle 12c的可插拔数据库
- Android MTK平台修改开关机动画和开机logo【转】
- 【C语言程序设计-摘抄】为什么要学C语言
- 页面刷新reload,go(0)区别
- JavaScript生成指定范围的随机数和随机数序列
- 题解:Perfect Squares
- 软件光栅化渲染器(四)
- 【POJ 1988 Cube Stacking】+ 并查集
- PHP基础(1)---认识PHP
- POJ3480John博弈
- 蓝桥杯 基础练习 查找整数 JAVA
- 请求重定向和请求转发的区别
- Android Service 的生命周期