javascript实现某区间随机数的获取

要求解析

在javascript中是有生成随机数的方法的:就是内置对象Math的random()方法,

  • 生成数的范围在0-1之间,但是不包含1,故此,能取值到0-0.9999999999999999……,无限接近于1。
  • 在生活中,随机数一般都在整数上,所以就对这个方法进行了改进,让他能够取整数,并且在你给定的范围之间。

公式先给出来:Math.floor(Math.random()*(m-n+1)+n)

解析:假设取数值2到6的数;
如果使用random()方法,那么取值在0-0.99999999……,不满足需求。
就进行改进,首先2到6的数,分别是2、3、4、5、6是5个数,而我们会发现生成随机数的个数等于:6-2+1
然后,用取值的个数去乘以随机数区间的最大值与最小值,其取值范围为【0,4.99999999……5】,你会发现取值范围比我们想要的范围少了2;那么我们在去加上2会是【2,6.9999999……】,最大值又多了0.999999……,为了达到我们的目的,对这个随机数进行向下取整使用floor()方法,即可获得我们想要的这个范围的随机数。

那么对于,2到6的随机数公式应该是Math.floor(Math.Random()*(6-2+1) + 2);
所以,放在函数中,使每一个给出的范围都能够达到这个功能,将2定义为n,6定义为m,故此有公式Math.floor(Math.random()*(m-n+1)+n);

代码

 

// 生成随机数的方法

        function getRandom(n, m){        // 首先创建一个带有参数的函数函数,
            var choise = m - n + 1;        // 定义随机数的个数
            return Math.floor(Math.random()*choise+n);
        }

        // 调用函数,并打印一组你想取值的数据;
        var posRandom = getRandom(2,6);
        console.log(posRandom);
 

 

运行结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值