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位随机数了;

//获取随机数,小数第一位可能为0
console.log(Math.random());
//获取10位随机数,如果小数第一位为0则只有9位数
console.log(Math.floor(Math.random()*Math.pow(10,10)));
//随机数+1,解决小数第一位为0的情况
//但是会导致随机数的第一位总是为1
console.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
时间: 2024-10-06 19:06:37

JS生成指定位数的随机的相关文章

.NET(C#)生成指定长度的随机字符串的通用方法

.NET(C#)生成指定长度的随机字符串的通用方法,此方法可以指定字符串的长度,是否包含数字,是否包含符号,是否包含小写字母,是否包含大写字母等, 源码: 1 #region 生成指定长度的随机字符串 2 /// <summary> 3 /// 生成指定长度的随机字符串 4 /// </summary> 5 /// <param name="intLength">随机字符串长度</param> 6 /// <param name=&

随机生成指定位数的验证码

import randomimport string # 方法一:def code_1(m, choice): code=''.join(random.sample(choice, m)) return code print(code_1(4, string.ascii_letters + string.digits)) # 方法二:def code_2(n): code='' for i in range(n): number=random.randint(0, 9) # 0-9 lower_

JS生成指定长度的随机数

1 /** 2 * 生成指定长度的UUID 3 * @param len 4 * @param radix 5 * @returns uuid 6 * eg: createUUID(8, 2) "01001010" createUUID(8, 10) "47473046" createUUID(8, 16) "098F4D35" 7 */调用 var num = createUUID(6, 10); 8 function createUUID(l

Python中for循环相关的几个小练习,生成指定位数的验证码序列,移位加密

1 # 1.键盘录入的字符串(假设字符串中只包含小写字母和空格)进行加密操作, 2 # 加密的规则是a变d,b变e,c变f,??,x变a,y变b,z变c,空格不变,返回加密后的字符串 3 # 97 98 99 100 x = 120(97) y = 121(98) z = 122(99) 4 5 c_in = input("输入一个字母串:") 6 mi_c = '' 7 for c in c_in: 8 if 97 <= ord(c) < 120: 9 mi_c += c

js生成制定范围的随机整数

//指定范围随机数 function getRandomBy(startNum, endNum){ switch(arguments.length){ case 1: return parseInt(Math.random()*startNum+1); case 2: return parseInt(Math.random()*(endNum-startNum+1) + startNum); default: return 0; } } 调用: getRandomBy(1,999);//随机1到

用python生成指定位数的密码

#!/usr/bin/env python#coding:utf8#随机生成8位.20位.10位密码 import randomimport stringall_chs = string.letters + string.digits def gen_pass(num=8):    pwd = ''#    num = int(raw_input('numer: '))    for i in range(num):        mima = random.choice(all_chs)   

js保留指定位数的小数

toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. //保留四位小数 var number = 1.23456789; number = number.toFixed(4); 原文地址:https://www.cnblogs.com/zhou-pan/p/9585784.html

javascript生成指定位数的随机数

<script type="text/javascript"> document.write("请输入要生成随机数的位数:"); // digit是数字的位数 function runStr(digit){ if(digit=="" || isNaN(digit)){ alert("请输入数字"); }else{ var sourceStr="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

生成指定长度的随机字符串

/** * 生成随即密码 * @param pwd_len 生成的密码的总长度 * @return 密码的字符串 */ public String genRandomNum(int pwd_len) { //36个字母+10个数字 final int maxNum = 36; int i; // 生成的随机数 int count = 0; // 生成的密码的长度 char[] str = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k