常用取整數的方法 : Math.floor(Math.random() * (max - min + 1)) + min
一步步來解析:
Math.random() 函數返回一個浮點, 偽隨機數在范圍[0,1),也就是說,從0(包括0)往上,但是不包括1(排除1),然后您可以縮放到所需的范圍。實現將初始種子選擇到隨機數生成算法;它不能被用戶選擇或重置。
返回值 :一個浮點型偽隨機數字,在0(包括0)和1(不包括)之間。
-MDN
1. (max - min + 1)
大數減小數+ 1 得到差值 比如8-4+1 = 5; 也就是在5個數中間取值。
2.Math.random() * (max - min + 1) 返回 0-5之間的值,浮點數。
3. Math.floor(Math.random() * (max - min + 1)) 向下取整 +最小值 得到
但是這個數很假 最大和最小幾乎取不到
那么如果要取浮點數呢?
Math.random() * (max - min )+ min;
============================================
如果要取隨機值 可以用Crypto.getRandomValues()
用法:
var array = new Uint32Array(10); window.crypto.getRandomValues(array); console.log("Your lucky numbers:"); for (var i = 0; i < array.length; i++) { console.log(array[i]); }
