Khi làm việc với một chương trình JavaScript, có thể đôi khi bạn cần tạo một số ngẫu nhiên.
Ví dụ: bạn có thể muốn tạo một số ngẫu nhiên khi phát triển trò chơi JavaScript, chẳng hạn như trò chơi đoán số.
JavaScript có nhiều phương thức tích hợp sẵn để làm việc với các con số và thực hiện các phép tính toán học. Một trong những phương pháp đó là Math.random()
phương pháp.
Trong bài viết này, bạn sẽ học cách sử dụng Math.random()
phương pháp lấy số ngẫu nhiên.
Đây là những gì chúng tôi sẽ đề cập:
- Giới thiệu về
Math
vật Math.random()
sự cố cú pháp- Cách tạo một số thập phân ngẫu nhiên với một chỉ định
max
- Cách tạo một số thập phân ngẫu nhiên với một chỉ định
min
vàmax
phạm vi - Cách tạo một số nguyên ngẫu nhiên với một chỉ định
max
- Cách tạo một số nguyên ngẫu nhiên với một chỉ định
max
bao gồm - Cách tạo một số nguyên ngẫu nhiên với một chỉ định
min
vàmax
phạm vi bao gồm
- Cách tạo một số thập phân ngẫu nhiên với một chỉ định
Cách sử dụng toán học trong JavaScript – Giới thiệu về Math
Vật
JavaScript có Math
đối tượng tĩnh tích hợp, cho phép bạn thực hiện các phép tính và phép toán.
Các Math
đối tượng có một số phương thức tích hợp giúp thực hiện các thao tác đó chính xác hơn nhiều.
Cú pháp chung cho Math
các phương thức đối tượng như sau:
Math.methodName(number);
Một số phương pháp phổ biến nhất là:
Math.round()
Math.ceil()
Math.floor()
Math.random()
Hãy xem xét một số ví dụ về cách triển khai các phương thức đó.
Nếu bạn muốn làm tròn một số đến số nguyên gần nhất, hãy sử dụng Math.round()
phương pháp:
console.log(Math.round(6.2)); // 6
console.log(Math.round(6.3)); // 6
console.log(Math.round(6.5)); // 7
console.log(Math.round(6.8)); // 7
Nếu bạn muốn làm tròn một số hướng lên đến số nguyên gần nhất của nó, hãy sử dụng Math.ceil()
phương pháp:
console.log(Math.ceil(6.2)); // 7
console.log(Math.ceil(6.3)); // 7
console.log(Math.ceil(6.5)); // 7
console.log(Math.ceil(6.8)); // 7
Nếu bạn muốn làm tròn một số xuống đến số nguyên gần nhất của nó, hãy sử dụng Math.floor()
phương pháp:
console.log(Math.floor(6.2)); // 6
console.log(Math.floor(6.3)); // 6
console.log(Math.floor(6.5)); // 6
console.log(Math.floor(6.8)); // 6
Nếu bạn muốn tạo một ngẫu nhiên số, sử dụng Math.random()
phương pháp:
console.log(Math.random());
// You will not get the same output
//first time running the program:
// 0.4928793139100267
//second time running the program:
// 0.5420802533292215
// third time running the program:
// 0.5479835477696466
cái gì là Math.random()
Phương thức trong JavaScript? – Phân tích cú pháp
Cú pháp cho Math.random()
phương pháp như sau:
Math.random();
Phương thức này không nhận bất kỳ tham số nào.
Theo mặc định, phương thức trả về một giá trị là một số thập phân ngẫu nhiên (hoặc dấu phẩy động) số giữa và
1
.
Một cái gì đó cần lưu ý về điều này là là bao gồm, trong khi
1
Là không phải bao hàm.
Vì vậy, nó sẽ trả về một giá trị lớn hơn hoặc bằng và luôn nhỏ hơn và không bao giờ bằng
1
.
Cách tạo số thập phân ngẫu nhiên với số được chỉ định max
Hạn chế sử dụng Math.random()
trong JavaScript
Như bạn đã thấy cho đến nay, theo mặc định, các số Math.random()
tạo ra là nhỏ.
Điều gì sẽ xảy ra nếu bạn muốn tạo một số thập phân ngẫu nhiên bắt đầu từ và bao gồm, và cũng là lớn hơn hơn
1
? Đối với điều này, bạn chỉ định một tối đa con số.
Cụ thể, bạn sẽ cần nhân số này max
số với số ngẫu nhiên từ Math.random()
.
Ví dụ: nếu bạn muốn tạo một số ngẫu nhiên giữa và
10
bạn sẽ làm như sau:
console.log(Math.random() * 10);
// You won't get the same output
//9.495628210218175
Trong ví dụ trên, tôi đã nhân max
con số (10
), sẽ hoạt động như một giới hạn, với số kết quả từ Math.random()
.
Hãy nhớ rằng trong trường hợp này, số ngẫu nhiên sẽ nằm trong khoảng và
10
– điều này có nghĩa là lớn hơn hoặc bằng và ít hơn và không bao giờ bằng
10
.
Cách tạo số thập phân ngẫu nhiên với số được chỉ định min
và max
Phạm vi sử dụng Math.random()
trong JavaScript
Nếu bạn muốn tạo một số thập phân ngẫu nhiên giữa một dãy số mà bạn chỉ định thì sao?
Bạn đã thấy trong phần trước cách chỉ định một max
nhưng nếu bạn đừng muốn phạm vi bắt đầu từ (phạm vi bắt đầu mặc định) là gì? Để làm điều này, bạn cũng có thể chỉ định một
min
.
Cú pháp chung để tạo một số thập phân giữa hai giá trị (hoặc phạm vi) trông giống như sau:
Math.random() * (max - min) + min;
Hãy lấy ví dụ sau:
// specify a minimum - where the range will start
let min = 20.4;
// specify a maximum - where the range will end
let max = 29.8;
Tôi đã tạo hai biến, min
và max
– ở đâu min
sẽ là số nhỏ nhất và max
số lớn nhất trong dãy.
Tiếp theo, tôi tạo một số ngẫu nhiên trong phạm vi đó bằng cách sử dụng cú pháp mà bạn đã thấy trước đó:
let min = 20.4;
let max = 29.8;
let randomNum = Math.random() * (max - min) + min;
console.log(randomNum);
// You won't get the same output
// 23.309418058783486
Một điều cần lưu ý ở đây là min
là bao gồm, vì vậy số ngẫu nhiên sẽ lớn hơn hoặc bằng 20.4
nhưng trái lại max
Là không phải không tính toán, vì vậy kết quả sẽ luôn là một số nhỏ hơn và không bao giờ bằng 29.8
.
Cách tạo một số nguyên ngẫu nhiên với một chỉ định max
Hạn chế sử dụng Math.random()
trong JavaScript
Cho đến nay, bạn đã thấy cách tạo ngẫu nhiên số thập phân con số.
Điều đó nói rằng, có một cách để tạo ngẫu nhiên trọn số sử dụng Math.random()
.
Bạn sẽ cần phải vượt qua kết quả của Math.random()
tính toán để Math.floor()
phương pháp bạn đã thấy trước đó.
Cú pháp chung cho điều này là như sau:
Math.floor(Math.random());
Các Math.floor()
sẽ làm tròn số thập phân ngẫu nhiên thành số nguyên (hoặc số nguyên) gần nhất.
Trên hết, bạn có thể chỉ định một max
con số.
Vì vậy, ví dụ: nếu bạn muốn tạo một số ngẫu nhiên giữa và
10
bạn sẽ làm như sau:
console.log(Math.floor(Math.random() * 10));
// You won't get the same output
// 0
Trong ví dụ này, tôi đã nhân max
số (là 10
trong trường hợp này) với kết quả từ Math.random()
và chuyển kết quả tính toán này cho Math.floor()
.
Một điều cần lưu ý ở đây là số ngẫu nhiên sẽ nằm trong khoảng bao gồm và
10
loại trừ. Vì vậy, các số có thể lớn hơn hoặc bằng và ít hơn và không bao giờ bằng
10
.
Cách tạo một số nguyên ngẫu nhiên với một chỉ định max
Bao gồm giới hạn sử dụng Math.random()
trong JavaScript
Trong ví dụ từ phần trước, tôi đã tạo một số ngẫu nhiên giữa các số (bao gồm) và
10
(loại trừ).
Cho đến nay, bạn đã thấy rằng bạn không thể tạo một số ngẫu nhiên bằng số đã chỉ định max
.
Điều gì xảy ra nếu bạn muốn tạo một số ngẫu nhiên bao gồm giá trị tối đa được chỉ định?
Giải pháp cho vấn đề này là thêm 1
trong quá trình tính toán.
Vì vậy, hãy xem lại mã từ phần trước:
console.log(Math.floor(Math.random() * 10));
Bây giờ bạn sẽ viết lại mã như vậy:
console.log(Math.floor(Math.random() * 10) + 1);
// You will not get the same output
// 10
Một điều cần lưu ý ở đây là mã này sẽ tạo ra một số nguyên ngẫu nhiên giữa 1
(không phải ) và
10
– bao gồm 10
.
Cách tạo một số nguyên ngẫu nhiên với một chỉ định min
và max
Phạm vi bao gồm sử dụng Math.random()
trong JavaScript
Cho đến giờ, bạn đã biết cách tạo một số nguyên ngẫu nhiên với một max
bạn chỉ định.
Như bạn đã thấy trong ví dụ trên, đoạn mã để tạo max
số bao gồm sử dụng số 1
là số bắt đầu chứ không phải .
Điều đó nói rằng, có một cách để bạn chỉ định một phạm vi bao gồm các số. Đối với điều này, bạn cần chỉ định một min
và max
.
Trong phần trước, bạn đã thấy cách tạo một số ngẫu nhiên giữa một phạm vi được chỉ định và mã này cũng tương tự. Thay đổi duy nhất là bạn chuyển kết quả cho Math.floor()
phương pháp làm tròn số thập phân xuống số nguyên gần nhất.
Vì vậy, mã chung là như sau:
Math.floor(Math.random() * (max - min) + min);
Để làm cho phạm vi đó bao gồmbạn sẽ làm như sau:
console.log(Math.floor(Math.random() * (max - min + 1)) + min);
Vì vậy, để tạo một số ngẫu nhiên giữa các số (bao gồm) và
10
(bao gồm), bạn sẽ viết như sau:
let min = 0;
let max = 10;
console.log(Math.floor(Math.random() * (max - min + 1)) + min);
//You will not get the same output
// 0
Phần kết luận
Và bạn có nó rồi đấy! Bây giờ bạn biết làm thế nào Math.random()
phương pháp hoạt động và một số cách bạn có thể sử dụng nó.
Để tìm hiểu thêm về JavaScript, hãy xem Chứng nhận cấu trúc dữ liệu và thuật toán JavaScript của freeCodeCamp.
Đó là một chương trình giảng dạy miễn phí, được cân nhắc kỹ lưỡng và có cấu trúc, nơi bạn sẽ học một cách tương tác. Cuối cùng, bạn cũng sẽ xây dựng 5 dự án để nhận chứng chỉ và củng cố kiến thức của mình.
Cảm ơn vì đã đọc!