【代码】JavaScript获取指定区间的随机数

2021-04-15 11:19:23  阅读 2563 次 评论 0 条

直接上代码

        function randomFrom(min,max)
        {
            var rand=Math.random();
            var res=Math.floor( rand * (max - min + 1) + min);
            return res;
        }
        
        randomFrom(100,1000)//生成100-1000的随机数
        randomFrom(10,100)//生成10-100的随机数
        randomFrom(28,30)//生成28-30的随机数


我个人的理解(仅供参考):

  1. rand是取出大于等于0,但是小于1的这么一个随机数。

  2. 而 rand * (max - min + 1) 是取出 大于等于0,小于(max - min + 1) 这么一个随机数。我们假设:max=10,min=5

  3. 带入公式可得 rand * (10- 5+ 1)  则 rand*6 ,这样我们就得到了大于等于0小于6的小数。但是,前面有个floor,就是向下取整,就是大于等于0,小于等于5的整数。

  4. 你可以理解成,我要取出他们之间差值的随机数,把这个东西看做一个数轴(由于是向下取整,所以要+1)。

  5. 我们假设,刚才rand * (10- 5+ 1)  =3 。

  6. 这时,我们再把最低值加上去,5+3=8,就得到了我们需要的随机数,也可以形象的理解成,把选区平移到指定位置

具体的画图解析,看这里: 关于 Math.floor(Math.random()* (max - min + 1) + min)的个人理解


微信扫码查看本文
本文地址:https://www.yangguangdream.com/?id=2132
版权声明:本文为原创文章,版权归 编辑君 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?