Hàm Math.random() trả về một số nổi, số giả ngẫu nhiên lớn hơn hoặc bằng 0 và nhỏ hơn 1, với phân phối xấp xỉ trên phạm vi đó-sau đó bạn có thể mở rộng theo phạm vi mong muốn của mình. Việc thực hiện chọn hạt giống ban đầu vào thuật toán tạo số ngẫu nhiên; Nó không thể được người dùng chọn hoặc đặt lại.Math.random() function returns a floating-point, pseudo-random number that's greater than or equal to 0 and less than 1, with approximately uniform distribution over that range — which you can then scale to your desired range. The implementation selects the initial seed to the random number generation algorithm; it cannot be chosen or reset by the user. Lưu ý: Math.random() không cung cấp các số ngẫu nhiên an toàn bằng mã hóa. Không sử dụng chúng cho bất cứ điều gì liên quan đến bảo mật. Thay vào đó, sử dụng API tiền điện tử web và chính xác hơn là phương thức window.crypto.getRandomValues(). Math.random() does not provide cryptographically secure random numbers. Do not use them for anything related to security. Use the Web Crypto API instead, and more precisely the
window.crypto.getRandomValues() method. Một số nổi, số giả ngẫu nhiên giữa 0 (bao gồm) và 1 (độc quyền). Lưu ý rằng vì các số trong JavaScript là số điểm nổi của IEEE 754 với hành vi tối đa đến gần nhất, các phạm vi được yêu cầu cho các chức năng bên dưới (không bao gồm chính cho Math.random()) không chính xác. Nếu giới hạn cực lớn được chọn (253 trở lên), thì có thể trong những trường hợp cực kỳ hiếm gặp để đạt đến giới hạn trên thường bị loại trừ. function getRandom() {
return Math.random();
}
Ví dụ này trả về một số ngẫu nhiên giữa các giá trị được chỉ định. Giá trị trả về không thấp hơn (và có thể bằng) min và nhỏ hơn (và không bằng) max. function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
Ví dụ này trả về một số nguyên ngẫu nhiên giữa các giá trị được chỉ định. Giá trị không thấp hơn min (hoặc số nguyên tiếp theo lớn hơn min nếu min không phải là số nguyên) và nhỏ hơn (nhưng không bằng) max.Thử nó
Cú pháp
Giá trị trả về
Ví dụ
Nhận một số ngẫu nhiên giữa 0 (bao gồm) và 1 (độc quyền)
Nhận một số ngẫu nhiên giữa hai giá trị
Nhận một số nguyên ngẫu nhiên giữa hai giá trị
function getRandomInt(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min) + min); // The maximum is exclusive and the minimum is inclusive }
Lưu ý: Có thể rất hấp dẫn khi sử dụng function getRandomArbitrary(min, max) { return Math.random() * (max - min) + min; } 4 để thực hiện điều đó, nhưng làm như vậy sẽ khiến các số ngẫu nhiên của bạn tuân theo phân phối không đồng nhất, điều này có thể không được chấp nhận cho nhu cầu của bạn. It might be tempting to use function getRandomArbitrary(min, max) { return Math.random() * (max - min) + min; } 4 to accomplish that, but doing so would cause your random numbers to follow a non-uniform distribution, which may not be acceptable for your needs.
Nhận một số nguyên ngẫu nhiên giữa hai giá trị, bao gồm
Mặc dù hàm function getRandomArbitrary(min, max) { return Math.random() * (max - min) + min; } 5 ở trên được bao gồm ở mức tối thiểu, nhưng nó độc quyền ở mức tối đa. Điều gì sẽ xảy ra nếu bạn cần kết quả được bao gồm ở cả tối thiểu và tối đa? Hàm function getRandomArbitrary(min, max) { return Math.random() * (max - min) + min; } 6 dưới đây thực hiện điều đó.
function getRandomIntInclusive(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1) + min); // The maximum is inclusive and the minimum is inclusive }
Thông số kỹ thuật
Đặc tả ngôn ngữ Ecmascript # Sec-Math.Random # sec-math.random |
Tính tương thích của trình duyệt web
Bảng BCD chỉ tải trong trình duyệt
Xem thêm
Các số ngẫu nhiên được tạo ra như thế nào?
Để tạo ra các số ngẫu nhiên thực sự của người Viking, các trình tạo số ngẫu nhiên thu thập được entropy, dữ liệu hoặc dường như ngẫu nhiên từ thế giới vật lý xung quanh chúng. Đối với các số ngẫu nhiên không thực sự cần phải ngẫu nhiên, chúng có thể chỉ sử dụng thuật toán và giá trị hạt giống.
Hãy tự mình thử »
Làm thế nào để bạn tạo ra một số ngẫu nhiên trong khoảng từ 1 đến 3 trong JavaScript?
Đặt x = math.random () * 10;
Hãy tự mình thử »
Trả về một số ngẫu nhiên trong khoảng từ 0 đến 100:
Đặt x = math.random () * 100);
Hãy tự mình thử »
Một số toàn bộ ngẫu nhiên trong khoảng từ 1 đến 10:
Đặt x = math.floor ((math.random () * 10) + 1);
Hãy tự mình thử »
Một số toàn bộ ngẫu nhiên trong khoảng từ 1 đến 10:
Đặt x = math.floor ((math.random () * 10) + 1);
Hãy tự mình thử »
Một số toàn bộ ngẫu nhiên trong khoảng từ 1 đến 10:
Đặt x = math.floor ((math.random () * 10) + 1);
Một số toàn bộ ngẫu nhiên từ 1 đến 100:
Đặt x = math.floor ((math.random () * 100) + 1);
Định nghĩa và cách sử dụng
crypto.getRandomValues()
Phương thức Math.random() trả về một số ngẫu nhiên từ 0 (bao gồm) cho đến nhưng không bao gồm 1 (độc quyền).
Ghi chú
Math.random () không trả về một số an toàn bằng mã hóa.
Nếu bạn cần một số bảo mật bằng mã hóa, hãy sử dụng phương thức API tiền điện tử này: crypto.getrandomvalues () | Cú pháp |
Thông số | Giá trị trả về |
Loại hình
Sự mô tả
Con số
Một số ngẫu nhiên từ 0 (bao gồm) cho đến nhưng không bao gồm 1 (độc quyền). | Hỗ trợ trình duyệt | Math.random() là tính năng ECMAScript1 (ES1). | ES1 (JavaScript 1997) được hỗ trợ đầy đủ trong tất cả các trình duyệt: | Trình duyệt Chrome | I E |
Bờ rìa | Bờ rìa | Bờ rìa | Bờ rìa | Bờ rìa | Bờ rìa |