Hướng dẫn how to generate unique random numbers in javascript? - làm thế nào để tạo các số ngẫu nhiên duy nhất trong javascript?

Nếu bạn cần hơn duy nhất, bạn phải tạo ra một mảng (1..100).

var arr=[];
function generateRandoms(){
for(var i=1;i<=100;i++) arr.push(i);
}
function extractUniqueRandom()
{
   if (arr.length==0) generateRandoms();
   var randIndex=Math.floor(arr.length*Math.random());
   var result=arr[randIndex];
   arr.splice(randIndex,1);
   return result;

}
function extractUniqueRandomArray(n)
{
   var resultArr=[];
   for(var i=0;i

Mã trên nhanh hơn: ExtractUniquerAndomArray (50) => [2, 79, 38, 59, 63, 42, 52, 22, 78, 50, 39, 77, 1, 88, 40, 23, 48, 84, 91, 49, 4, 54, 93, 36, 100, 82, 62, 41, 89, 12, 24, 31, 86, 92, 64, 75, 70, 61, 67, 98, 76, 80, 56, 90, 83, 44, 43, 47, 7, 53]
extractUniqueRandomArray(50)=> [2, 79, 38, 59, 63, 42, 52, 22, 78, 50, 39, 77, 1, 88, 40, 23, 48, 84, 91, 49, 4, 54, 93, 36, 100, 82, 62, 41, 89, 12, 24, 31, 86, 92, 64, 75, 70, 61, 67, 98, 76, 80, 56, 90, 83, 44, 43, 47, 7, 53]

Hôm qua, giữa một dự án, tôi thấy mình muốn có được ba số ngẫu nhiên khác nhau giữa một đến mười lăm. Ổn không có vấn đề. Tôi biết làm thế nào để có được một số ngẫu nhiên trong khoảng từ 0 đến 1:

Math.random()

Đối tượng toán học JavaScript, chỉ là một thùng lưu trữ cho các chức năng toán học khác nhau. Ví dụ:

Math.random()
0 trả về PI và
Math.random()
1 làm tròn x cho số nguyên gần nhất.
Math.random()
2 cho chúng ta một giá trị thập phân từ 0 đến 1. Hãy thử thử:

Math.random() // 0.0860233629852345
Math.random() // 0.8732168857142002
Math.random() // 0.3644885309435295
Math.random() // 0.06638304368149206

Phương pháp tiêu chuẩn để chuyển đổi điều này thành một số nguyên giữa 0 và một số đã cho như sau:

Math.floor(Math.random() * 16) // 9
Math.floor(Math.random() * 16) // 15
Math.floor(Math.random() * 16) // 7
Math.floor(Math.random() * 16) // 0

Điều mà diễn ra ở đây là chúng tôi đã nhân một số thập phân ngẫu nhiên với mười sáu, và sau đó làm tròn nó xuống. Chúng ta có thể biến điều này thành một chức năng để sử dụng với bất kỳ hàng đầu nào:

function randomIntByMax(n){
return Math.floor(Math.random() * (n + 1))
}
randomIntByMax(15) // 7

Mát mẻ. Trong Ruby, điều này sẽ đơn giản như

Math.random()
3, nhưng trong JavaScript, chúng ta phải tự viết chức năng này. Và chúng tôi đã làm!

Một giây mặc dù. Những gì tôi muốn là một con số từ một đến mười lăm, không phải là 0 và mười lăm. Tôi có thể đạt được điều đó bằng cách thêm một thứ vào toàn bộ và trừ một cái từ đầu cuối:

function myRandomIntByMax(n){
return Math.floor(Math.random() * n) + 1
}
myRandomIntByMax(15) // 14

Được rồi. Chúng tôi đã có một trình tạo số ngẫu nhiên có mục đích chung và chúng tôi biết cách điều chỉnh phạm vi, bây giờ là phần khó. Những gì tôi muốn là có thể yêu cầu một số số lượng ngẫu nhiên duy nhất. Vì vậy, tôi muốn có thể yêu cầu, nói, sáu số ngẫu nhiên duy nhất giữa một đến hai mươi. Làm thế nào để chúng tôi chạy điều này nhiều lần và đảm bảo mỗi kết quả là duy nhất?

Cách rõ ràng nhất trong tâm trí tôi có thể là lưu trữ kết quả trước đây của chúng tôi và từ chối bất kỳ kết quả mới nào phù hợp với những kết quả mới. Một cái gì đó như thế này:

function myRandomInts(quantity, max){
const
arr = []
while(arr.length < quantity){
var candidateInt = Math.floor(Math.random() * max) + 1
if(arr.indexOf(candidateInt) === -1) arr.push(candidateInt)
}
return(arr)
}
myRandomInts(6, 20) // [13, 9, 3, 8, 6, 12]

Trong chức năng này, chúng tôi đang tìm cách xuất ra một mảng có kích thước nhất định và cho đến khi mảng đạt kích thước đó, chúng tôi đang tạo các số nguyên ngẫu nhiên trong phạm vi được chỉ định và kiểm tra xem chúng có khớp với bất kỳ số nào trong mảng . Nếu họ don, chúng tôi thêm chúng vào mảng.

Phần bí ẩn nhất của điều này có lẽ là nơi chúng tôi kiểm tra xem liệu số nguyên ứng cử viên hiện tại của chúng tôi đã có trong mảng:

if(arr.indexOf(candidateInt) === -1)

Math.random()
4 Họ một phương thức mảng trả về chỉ số của
Math.random()
5 mà tại đó
Math.random()
6 có thể được tìm thấy. Nếu nó không tìm thấy nó, nó sẽ trả về -1. Đó chỉ là cách
Math.random()
4 hoạt động. Vì vậy, chúng tôi có thể sử dụng nó để kiểm tra xem
Math.random()
6 có nằm trong mảng không; Nếu đó là không,
Math.random()
9 sẽ bằng -1.

Thật tuyệt. Điều này hoạt động tốt. Tuy nhiên, có một sự cải thiện mà chúng ta có thể thực hiện, sử dụng sức mạnh của tập hợp.Set.

Set là một vị thần Ai Cập quan trọng liên quan đến sự hỗn loạn và sa mạc; Giống như hầu hết, vai trò và ý nghĩa của anh ấy đã thay đổi với xã hội Ai Cập.

Một loại bộ sưu tập, giống như một mảng, nhưng với tính năng chính của việc chỉ giữ các giá trị duy nhất. Điều đó có nghĩa là, bạn có thể có một mảng [6, 6, 6, Hail Hail ,, Sat Satan], nhưng bạn chỉ có thể có một bộ [6, Hail Hail, Hồi Satan,]. Chà, điều này chắc chắn nghe có vẻ phù hợp với những gì chúng tôi đang cố gắng làm! Nó có thể rút ngắn và làm sạch mã của chúng tôi một chút:is a type of collection, like an array, but with the key feature of holding only unique values. That is to say, you can have an array of [6, 6, 6, “hail”, “satan”], but you can only have a set of [6, “hail”, “satan”]. Well, this certainly sounds relevant to what we’re trying to do! It can shorten and clean up our code by a bit:

function myRandomInts(quantity, max){
const set = new Set()
while(set.size < quantity) {
set.add(Math.floor(Math.random() * max) + 1)
}
return set
}
myRandomInts(6, 20) // {7, 15, 4, 19, 14, 3}

Chúng tôi không phải kiểm tra xem nó có duy nhất nữa không! Đặt làm điều đó cho chúng tôi. Lau dọn.

Đặt là một trò chơi phù hợp trong đó mỗi thẻ có bốn tính năng - màu sắc, số lượng, hình dạng và bóng. Mục tiêu của bạn là tìm một bộ ba thẻ mà mỗi tính năng đó đều giống nhau hoặc tất cả khác nhau.

Làm thế nào để bạn tạo ra một số ngẫu nhiên duy nhất?

Trong một cột, sử dụng công thức = rand () để tạo một tập hợp các số ngẫu nhiên trong khoảng từ 0 đến 1.use =RAND() formula to generate a set of random numbers between 0 and 1.

Làm thế nào để JavaScript tạo ra 5 số ngẫu nhiên?

Tạo JavaScript Số ngẫu nhiên JavaScript tạo số giả ngẫu nhiên với hàm Math.random (). Hàm này không có tham số và tạo số thập phân ngẫu nhiên trong khoảng từ 0 đến 1.with the function Math. random() . This function takes no parameters and creates a random decimal number between 0 and 1.

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?

Ví dụ: Giá trị số nguyên giữa hai số trong javascript, bạn có thể tạo một số ngẫu nhiên với hàm math.random ().Chương trình trên sẽ hiển thị đầu ra số nguyên giữa tối thiểu (bao gồm) đến tối đa (bao gồm).Đầu tiên, các giá trị tối thiểu và tối đa được lấy làm đầu vào từ người dùng.Math. random() function. The above program will show an integer output between min (inclusive) to max (inclusive). First, the minimum and maximum values are taken as input from the user.

Làm thế nào để bạn tạo ra các số duy nhất ngẫu nhiên trong nút JS?

Phương thức ngẫu nhiên () giúp chúng ta tạo ra các số ngẫu nhiên, như tên gọi.Toán học.Phương thức ngẫu nhiên () trả về số thập phân hoặc điểm nổi, số giả ngẫu nhiên giữa số 0 (bao gồm) và một (độc quyền).Theo thuật ngữ toán học, điều này được biểu diễn là 0 helps us generate random numbers, as the name implies. The Math. random() method returns a decimal number or floating-point, pseudo-random number between zero (inclusive) and one (exclusive). In mathematical terms, this is represented as 0 <= x < 1 .