zoukankan      html  css  js  c++  java
  • JavaScript中Math.random()方法生成随机数的通用函数

    Math.random()方法返回介于0 ~ 1 的一个随机数,不包括0和1,对于一些场景,这样的返回值很有用。比如,新闻网站用于随机显示新闻事件,套用下面的公式,就可以利用Math.random()方法从某一范围内随机选择一个值。

    value = Math.floor(Math.random() * 范围值 + 第一个可能的值);

    因为Math.random()总的返回一个小数值,用这个小数值乘以以个整数,然后再加上一个整数,结果仍然为一个小数。上面公式中用到了 Math.floor() 方法,将小数向下取整,取得我们需要的随机整数值。

    举2个例子,我们需要取得1 ~ 10 的随机整数:

    var randomNum = Math.floor(Math.random() * 10 + 1 ); 

    console.log(randomNum); //介于1和10之间的随机数(包括1和10)。总共有10个值的可能(1~10),而第一个可能的值是1.。如果是2到10 的数,就是

    var randomNum = Math.floor(Math.random() * 9 + 2 ); 

    console.log(randomNum); //介于2和9之间的随机数(包括2和9)。从2到10总共有9个数,而第一个可能的值是2。

    根据以上方法,抽离出一个比较通用的函数:

    function randomNum(lowerValue,upperValue){

    var choices = upperValue - lowerValue + 1;
    var num = Math.floor(Math.random() * choices + lowerValue );
    return num;

    }

    函数randomNum()接受两个参数,应该返回的最小值和最大值,而最大值减去最小值再加1得到的是可能值总数,然后就套用前面的公式。前面的两个例子分别可以使用函数,如下:

    randomNum(1,10); //介于1和10之间的随机数(包括1和10)

    randomNum(2,9); //介于2和9之间的随机数(包括2和9)

  • 相关阅读:
    centos执行sudo 显示command not found的问题
    linux(centos)-command
    关于linux(centos)下浏览器(chrome)打开界面缓慢的一个可能解决办法
    verilog 基本语法
    Date 类 (java.util.Date)
    Objects 类
    发红包案例(普通红包和随机红包)
    接口作为方法的参数和返回值
    接口作为成员变量类型
    类作为成员变量类型
  • 原文地址:https://www.cnblogs.com/ndh074512/p/15350770.html
Copyright © 2011-2022 走看看