JavaScript(1):生成指定位数minNum或指定范围[minNum,maxNum]的随机数

原理分析

  • Math.random()生成[0,1)的数

  • Math.random() * max 生成[0*max,1*max)的数

    即,生成[0,max)的数

  • Math.random() * (max-min) 生成[0,max-min)的数

  • Math.random() * (max-min+1) 生成[0,max-min+1)的数

  • Math.random() * (max-min+1) + min 生成[0+min,max-min+1+min)的数
    即,随机数生成范围:[min,max+1)–》[min,max]

代码

  • 如果没有参数,默认生成一个4位的随机数
  • 如果只有一个参数,生成一个minNum位的随机数
  • 如果两个参数,生成一个[minNum,maxNum]的随机数
  • 如果参数大于2个,生成一个[minNum,maxNum]的随机数
 //生成从minNum到maxNum的随机数
 //Math.random()生成[0,1)的数,
 //所以,Math.random()*5生成[0,5)的数。
 function getRandomNum(minNum,maxNum) {
     //判断传入参数的个数
     switch(arguments.length){
         //如果没有参数,默认生成一个4位的随机数
         case 0:
             //Math.random()生成[0,1)的数
             //Math.random() * 10000 生成[0,10000)的数。
             //Math.random() * 9000 生成[0,9000)的数。
             //Math.random() * 9000 + 1000 生成[0+1000,9000+1000)的数。
             //即,随机数生成范围:[0,10000)
             return Math.floor(Math.random() * 9000 + 1000);
             break;
         //如果只有一个参数,生成一个minNum位的随机数
         case 1:
             //pow(x,y):返回 x 的 y 次幂。
             //如果minNum是3
             var min=Math.pow(10,(minNum-1));//最小值 10的2次幂 100
             var max=Math.pow(10,minNum);//最大值 10的3次幂 1000

             //Math.random()生成[0,1)的数
             //Math.random() * max 生成[0,max)的数
             //Math.random() * (max-min) 生成[0,max-min)的数
             //Math.random() * (max-min+1) 生成[0,max-min+1)的数
             //Math.random() * (max-min+1) + min 生成[0+min,max-min+1+min)的数
             //即,随机数生成范围:[min,max+1)--》[min,max]
             return Math.floor(Math.random() * (max-min+1) + min);
             break;
         //如果两个参数,生成一个[minNum,maxNum]的随机数
         case 2:
             return Math.floor(Math.random() * (maxNum-minNum+1) + minNum);
             break;
         //如果参数大于2个,生成一个[minNum,maxNum]的随机数
         default:
             return Math.floor(Math.random() * (maxNum-minNum+1) + minNum);
             break;
     }

 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值