首页 > 代码库 > JS生成指定位数的随机
JS生成指定位数的随机
<html>
<script>//获取指定位数的随机数function getRandom(num){ var random = Math.floor((Math.random()+Math.floor(Math.random()*9+1))*Math.pow(10,num-1));}//调用随机数函数生成10位数的随机数getRandom(10);
</script></html>
实现思路(文末有代码过程及运行结果),以获取10位随机数为例:
1、Math.random()函数可以获得0到1之间的小数,Math.pow(10,10)函数进行幂运算等价于10的10次方,Math.floor()函数向下取整去除小数位;
2、组合起来则可以获得一个10位的随机数:Math.floor(Math.random()*Math.pow(10,10));
3、但是,如果Math.randow()的第一位小数位为0则可能获得的是9位随机数;
4、将Math.randow()加1,排除第一位小数位为0的情况,相应的幂运算减一位
Math.floor((Math.random()+1))*Math.pow(10,9));
如此将获得一个10位的随机数,但是都将以1开头;
5、为了开头也能随机取数,可以将1替换为Math.floor(Math.random()*9+1);
6、最终的代码如下所示:
Math.floor((Math.random()+Math.floor(Math.random()*9+1))*Math.pow(10,9));
如此就可以获得一个完全随机的10位随机数了;
//获取随机数,小数第一位可能为0console.log(Math.random());//获取10位随机数,如果小数第一位为0则只有9位数console.log(Math.floor(Math.random()*Math.pow(10,10)));//随机数+1,解决小数第一位为0的情况//但是会导致随机数的第一位总是为1console.log(Math.floor((Math.random()+1)*Math.pow(10,9)));//将随机数+1也改为随机加上1~9之间的数字,解决第一位总是为1的问题console.log(Math.floor((Math.random()+Math.floor(Math.random()*9+1))*Math.pow(10,9)));Chrome浏览器调试运行结果-----------------------------------------------------------------------------获取随机数,小数第一位可能为0:0.097574709201919获取10位随机数,如果小数第一位为0则只有9位数:623721160随机数+1,解决小数第一位为0的情况:但是会导致随机数的第一位总是为1:1242782126将随机数+1也改为随机加上1~9之间的数字,解决第一位总是为1的问题:7671051679
JS生成指定位数的随机
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。