phương pháp ngẫu nhiên
JavaScript Math.random()
method là một phương thức tích hợp tuyệt vời để tạo ra các số ngẫu nhiên. Khi nào Math.random()
được thực thi, nó trả về một số ngẫu nhiên có thể nằm trong khoảng từ 0 đến 1. Số 0 được bao gồm và số 1 bị loại trừ.
Tạo một số dấu phẩy động ngẫu nhiên trong khoảng từ 0 đến 1
Các Math.random()
phương thức sẽ trả về một số dấu phẩy động (thập phân) lớn hơn hoặc bằng 0 và nhỏ hơn (nhưng không bao giờ bằng) 1. Nói cách khác 0 <= x < 1
. Ví dụ:
console.log(Math.random());
// 0.7069207248635578
console.log(Math.random());
// 0.765046694794209
console.log(Math.random());
// 0.14069121642698246
(Tất nhiên, các số được trả về mỗi lần sẽ khác nhau. Điều này sẽ được giả định cho tất cả các ví dụ sau – các kết quả khác nhau sẽ xảy ra trên mỗi lần vượt qua.)
Để có được một số ngẫu nhiên giữa một phạm vi lớn hơn nhân kết quả của Math.random()
bằng một con số.
Tạo một số dấu phẩy động ngẫu nhiên trong khoảng từ 0 đến tối đa được chỉ định
Thông thường, bạn không cần các số ngẫu nhiên trong khoảng từ 0 đến 1 – bạn cần các số lớn hơn hoặc số nguyên chẵn.
Ví dụ: nếu bạn muốn một số dấu phẩy động ngẫu nhiên trong khoảng từ 0 đến 10, bạn có thể sử dụng:
var x = Math.random()*10;
console.log(x);
// 4.133793901445541
Tạo một số dấu phẩy động ngẫu nhiên trong một phạm vi
Nếu bạn cần một số dấu phẩy động ngẫu nhiên nằm trong khoảng giữa hai số cụ thể, bạn có thể thực hiện như sau:
var min = 83.1;
var max = 193.36;
var x = Math.random()*(max - min)+min;
console.log(x);
// 126.94014012699063
Tạo một số nguyên ngẫu nhiên trong khoảng từ 0 đến tối đa
Thường thì bạn cần số nguyên. Để làm điều này, bạn sẽ phải sử dụng một số phương pháp khác từ Math
vật, Math.floor()
(làm tròn xuống số nguyên gần nhất) và Math.ceil()
(làm tròn đến số nguyên gần nhất).
Ví dụ: nếu bạn cần chọn ngẫu nhiên từ một mảng gồm 10 phần tử, bạn sẽ cần một số ngẫu nhiên từ 0 đến 9 (hãy nhớ rằng các mảng không được lập chỉ mục).
var x = Math.floor(Math.random()*10);
console.log(x);
// 7
(Nhớ lấy Math.random()
sẽ không bao giờ trả lại chính xác 1, vì vậy Math.random()*10
sẽ không bao giờ trả về chính xác 10. Điều này có nghĩa là sau khi làm tròn xuống, kết quả sẽ luôn là 9 hoặc nhỏ hơn.)
Tạo một số nguyên ngẫu nhiên trong khoảng từ 1 đến tối đa
Nếu bạn cần một số ngẫu nhiên với số tối thiểu là 1 (ví dụ: chọn một ngày ngẫu nhiên trong tháng 1), bạn có thể sử dụng Math.ceil()
phương pháp.
var x = Math.ceil(Math.random()*31);
console.log(x);
// 23
Một cách khác là sử dụng chức năng trước đó (sử dụng Math.floor()
) và thêm 1 vào nó:
var x = Math.floor(Math.random()*31)+1;
console.log(x);
// 17
Tạo một số nguyên ngẫu nhiên trong một phạm vi
Cuối cùng, đôi khi bạn cần một số nguyên ngẫu nhiên giữa hai số nguyên cụ thể. Ví dụ: nếu bạn đang cố chọn vé xổ số và bạn biết số của số thấp nhất và số lớn nhất:
var min = 1718;
var max = 3429;
var x = Math.floor(Math.random()*(max-min+1)+min);
console.log(x);
//2509
Math.random() ngẫu nhiên như thế nào?
Có thể chỉ ra rằng số được trả về bởi Math.random()
là một số giả ngẫu nhiên vì không máy tính nào có thể tạo ra một số thực sự ngẫu nhiên, thể hiện tính ngẫu nhiên trên mọi thang đo và trên mọi kích thước của tập dữ liệu. Tuy nhiên, số giả ngẫu nhiên được tạo bởi Math.random()
thường là đủ cho nhu cầu của gần như bất kỳ chương trình nào bạn có thể viết. Tính không ngẫu nhiên thực sự chỉ trở nên rõ ràng trong các tập hợp số lớn về mặt thiên văn hoặc khi cần các số thập phân chính xác bất thường.