JS生成某个范围的随机数(四种情况)

前言

JS没有现成的函数,能够直接生成指定范围的随机数。

但是它有个函数:Math.random()  这个函数可以生成 [0,1) 的一个随机数。

利用它,我们就可以生成指定范围内的随机数。

而涉及范围的话,就有个边界值的问题。这样就包含四种情况:

1)min ≤ r ≤ max  (一般这种比较常见)

2)min ≤ r < max

3) min < r ≤ max

4)min < r < max

一、min ≤ r ≤ max

function RandomNumBoth(Min,Max){
            var Range = Max - Min;
            var Rand = Math.random();
            var num = Min + Math.round(Rand * Range); //四舍五入
            return num;
}

二、min ≤ r < max

function RandomNum(Min, Max) {
            var Range = Max - Min;
            var Rand = Math.random();
            var num = Min + Math.floor(Rand * Range);  //舍去
            return num;
}

三、min < r ≤ max

1 function RandomNum(Min, Max) {
2             var Range = Max - Min;
3             var Rand = Math.random();
4             if(Math.round(Rand * Range)==0){
5                 return Min + 1;
6             }
7             var num = Min + Math.round(Rand * Range);
8             return num;
9 }

四、min < r < max   

 1 function RandomNum(Min, Max) {
 2             var Range = Max - Min;
 3             var Rand = Math.random();
 4             if(Math.round(Rand * Range)==0){
 5                 return Min + 1;
 6             }else if(Math.round(Rand * Max)==Max)
 7             {
 8                 index++;
 9                 return Max - 1;
10             }else{
11                 var num = Min + Math.round(Rand * Range) - 1;
12                 return num;
13             }
14  }

五、对上面的结果进行测试

JS Bin on jsbin.com

PS:第三、四的实现方法不是很严谨,虽然测试时生成随机数的概率还算符合结果。求大神赐教!

时间: 2024-12-10 21:01:01

JS生成某个范围的随机数(四种情况)的相关文章

编译器自动生成默认构造函数的四种情况

在以下四种情况中,如果类中没有定义一个默认构造函数,则编译器会自动生成一个nontrivial的默认构造函数,而不是一个不做事情的trivial默认构造函数:1.内含一个成员变量,而这个成员变量所属的类中含有默认构造函数,则此时需要为此类生成一个implicit default constructor(隐式的默认构造函数),这个implicit default constructor是nontrivial的,因为内含的成员变量需要进行默认构造操作. 如果内含一个成员变量a,且该成员变量a含有默认

你知道web项目中Http请求与响应的四种情况吗

[四种情况]: HttpRequest.HttpResponse.HttpServletRequest.HttpServletResponse[什么是HTTP?]超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议.HTTP在客户端和服务器之间以request-response protocol(请求-回复协议)工作.[Http常用的两个方法]get - 从指定的服务器中获取数据post - 提交数据给指定的服务器

java中内部类的创建四种情况,三种方式,及内部数据访问权限

内部类和外部类的关系,及内部静态类的数据访问权限,声明方式. 第一种,在外部类内部声明使用内部类,内部类的类型为static和非 static类型,内部类数据类型为private,protected,public 类型的访问权限.外部类为非静态声明和权限如下: package com; public class Test1 { //@author 张春蕾 private class Name{ private int i =1; public int s = 2; protected int m

SET Transaction Isolation Level Read语法的四种情况

转自:http://www.cnblogs.com/qanholas/archive/2012/01/04/2312152.html 存储过程:SET Transaction Isolation Level Read语法的四种情况 这几天一直在弄存储过程,现在在这里跟大伙共享下资料: SET Transaction Isolation Level Read UNCOMMITTED 使用这句东东呢可以分为四种情况,现在就在这里逐一介绍: 第一种情况: READ   COMMITTED 这句的作用是

人在四种情况下容易失败

人在四种情况下容易失败: (1)没有自信 (2)发生意外事情 (3)环境很差 (4)身体不适 这四种情况背后最根本,共通东西就是不安情绪. 人在内心不安时候,容易看不清周围事物,让人在处理棘手问题过程中,失去冷静判断力. 这回导致缺乏目的的行为和疏忽大意的失误.接下来该做什么,就无法进行恰当判断了. 所谓不安,就是交感神经非常活跃,副交感神经完全没有动静的状态,是一种自主神经极端紊乱的状态. 通过静坐和有意识的进行慢慢呼吸,能够让自主神经功能稳定下来,应对各种情况变化. 人,真的很难保持淡定之心

存储过程:SET Transaction Isolation Level Read语法的四种情况

这几天一直在弄存储过程,现在在这里跟大伙共享下资料: SET Transaction Isolation Level Read UNCOMMITTED 使用这句东东呢可以分为四种情况,现在就在这里逐一介绍: 第一种情况: READ   COMMITTED 这句的作用是: 指定在读取数据时控制共享锁以避免脏读,但数据可在事务结束前更改,从而产生不可重复读取或幻像数据.该选项是   SQL   Server   的默认值. 第二种情况: READ   UNCOMMITTED 这句的作用是: 执行脏读

js生成各种范围的随机数

摘要: 本文讲解如何使用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

js生成[n,m]的随机数

一.预备知识 Math.ceil();  //向上取整. Math.floor();  //向下取整. Math.round();  //四舍五入. Math.random();  //0.0 ~ 1.0 之间的一个伪随机数.[包含0不包含1] //比如0.8647578968666494 Math.ceil(Math.random()*10);      // 获取从1到10的随机整数 ,取0的概率极小. Math.round(Math.random());   //可均衡获取0到1的随机整数

Jquery 中Ajax使用的四种情况

<script type="text/javascript" language="javascript" src="JS/jquery-1[1].2.3.min.js"></script>     <script type="text/javascript" language="javascript">     $(document).ready(function(){