1. 사전 지식
Math.ceil(); //向上取整。 Math.floor(); //向下取整。 Math.round(); //四舍五入。 Math.random(); //0.0 ~ 1.0 之间的一个伪随机数。【包含0不包含1】 //比如0.8647578968666494 Math.ceil(Math.random()*10); // 获取从1到10的随机整数 ,取0的概率极小。 Math.round(Math.random()); //可均衡获取0到1的随机整数。 Math.floor(Math.random()*10); //可均衡获取0到9的随机整数。 Math.round(Math.random()*10); //基本均衡获取0到10的随机整数,其中获取最小值0和最大值10的几率少一半。
결과가 0~0.4이므로 0.5~1.4는 1...8.5~9.4는 9, 9.5~9.9는 10입니다. 따라서 머리와 꼬리의 분포 간격은 다른 숫자의 절반에 불과합니다.
2. [n, m]의 임의의 정수를 생성합니다
기능: [n, m]의 임의의 정수를 생성합니다.
js가 인증 코드를 생성하거나 옵션을 무작위로 선택할 때 유용합니다. .
//生成从minNum到maxNum的随机数 function randomNum(minNum,maxNum){ switch(arguments.length){ case 1: return parseInt(Math.random()*minNum+1,10); break; case 2: return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); break; default: return 0; break; } }
프로세스 분석:
Math.random()은 숫자 [0,1)을 생성하므로 Math.random()*5는 숫자 {0,5)를 생성합니다.
일반적으로 정수가 예상되므로 결과를 처리해야 합니다.
parseInt(), Math.floor(), Math.ceil() 및 Math.round()는 모두 정수를 얻을 수 있습니다.
parseInt() 및 Math.floor()의 결과는 반내림됩니다.
그래서 Math.random()*5는 [0,4]에 임의의 정수를 생성합니다.
따라서 [1,max]라는 난수가 생성되며 수식은 다음과 같습니다.
// max - 期望的最大值 parseInt(Math.random()*max,10)+1; Math.floor(Math.random()*max)+1; Math.ceil(Math.random()*max);
따라서 [0,max]부터 임의의 숫자까지 임의의 숫자를 생성합니다. 공식은 다음과 같습니다.
// max - 期望的最大值 parseInt(Math.random()*(max+1),10); Math.floor(Math.random()*(max+1));
그래서 [최소, 최대]의 난수를 생성하려고 합니다. 공식은 다음과 같습니다.
// max - 期望的最大值 // min - 期望的最小值 parseInt(Math.random()*(max-min+1)+min,10); Math.floor(Math.random()*(max-min+1)+min);
위 내용은 js에서 생성된 난수에 대한 포괄적인 분석입니다. 모든 사람에게 도움이 되기를 바랍니다.