Hàm rand () trong ngôn ngữ C

Rand Function C Language



Trong ngôn ngữ C, hàng ngang() chức năng được sử dụng cho Pseudo Number Generator (PRNG) . Các số ngẫu nhiên được tạo bởi hàm rand () không thực sự là ngẫu nhiên. Nó là một chuỗi lặp lại theo chu kỳ, nhưng chu kỳ quá lớn nên chúng ta có thể bỏ qua nó. Các hàng ngang() hàm hoạt động bằng cách ghi nhớ một giá trị hạt giống được sử dụng để tính số ngẫu nhiên tiếp theo và hạt giống mới tiếp theo. Trong bài viết này, chúng ta sẽ thảo luận chi tiết về cách các số ngẫu nhiên có thể được tạo bằng cách sử dụng hàng ngang() hàm số. Vậy hãy bắt đầu!

Tập tin tiêu đề:

stdlib.h







Cú pháp:

int rand (void)



Giá trị trả về:

Hàm này trả về số giả ngẫu nhiên tiếp theo trong chuỗi. Giá trị phạm vi của chuỗi số nằm trong khoảng từ 0 đến RAND_MAX. RAND_MAX là một macro được định nghĩa trong stdlib.h tệp tiêu đề, có giá trị là giá trị lớn nhất, có thể trả về bằng hàm rand (). Giá trị của RAND_MAX lớn hơn nhưng không nhỏ hơn 32767 tùy thuộc vào thư viện C.



//Example1.c

#bao gồm
#bao gồm

NSchủ chốt()
{

NStôi;

printf ('10 Số Ngẫu nhiên => ');

(tôi=0;tôi<10;tôi++)
{
printf ('%NS ', hàng ngang ());
}

printf (' ');
trở lại 0;
}


Trong Ví dụ1.c, chúng ta gọi hàm rand () trong mỗi lần lặp của vòng lặp for và in ra giá trị trả về của hàm. Chuỗi giá trị của hàm rand () giống nhau mỗi khi chúng ta chạy chương trình. Theo mặc định, hạt giống của hàm rand được đặt thành 1.





Chúng ta có thể đặt hạt giống cho hàm rand bằng cách sử dụng srand () hàm số. Hạt giống chỉ có thể được đặt một lần và trước lần đầu tiên hàng ngang() chức năng gọi.

hàm srand ():

Tập tin tiêu đề:

stdlib.h



Cú pháp:

int srand (int hạt giống không dấu)

Tranh luận:

Hàm này nhận 1 đối số

hạt giống: Một giá trị số nguyên được sử dụng làm hạt giống cho một chuỗi số giả ngẫu nhiên mới.

Giá trị trả về:

Không có

//Example2.c

#bao gồm
#bao gồm
#bao gồm

NSchủ chốt()
{

NStôi;

srand ( thời gian (0));

printf ('10 Số Ngẫu nhiên => ');

(tôi=0;tôi<10;tôi++)
{
printf ('%NS ', hàng ngang ());
}

printf (' ');
trở lại 0;
}


Trong Ví dụ2.c, chúng ta đã sử dụng hàm srand () để đặt hạt giống ban đầu của chuỗi số ngẫu nhiên được tạo bởi hàm rand (). Mỗi khi chương trình được chạy, một trình tự khác nhau được tạo ra. Trong hàm srand (), time (0) (được khai báo trong time.h tệp tiêu đề) được sử dụng như một hạt giống. Hàm time (0) này trả về số giây đã trôi qua kể từ kỷ nguyên (00:00:00, ngày 1 tháng 1 năm 1970). Điều này vẫn có thể tạo ra các trình tự giống nhau nếu bạn chạy chương trình trong cùng một giây.

//Example3.c

#bao gồm
#bao gồm
#bao gồm

NSchủ chốt()
{

NStôi;

srand ( thời gian (0));

printf ('10 Số Ngẫu nhiên từ 1 đến 10 => ');

(tôi=0;tôi<10;tôi++)
{
printf ('%NS ',( hàng ngang () %10) + 1);
}

printf (' ');
trở lại 0;
}


Trong Ví dụ3.c, chúng ta đã thấy cách các số ngẫu nhiên có thể được tạo từ 1 đến 10.

//Example4.c

#bao gồm
#bao gồm
#bao gồm

NSchủ chốt()
{

NStôi,tối đa,min;

printf ('Nhập giá trị Min =>');
scanf ('%NS'&min);
printf ('Nhập giá trị lớn nhất =>');
scanf ('%NS'&tối đa);

nếu như(min>tối đa)
{
printf ('Giá trị tối thiểu lớn hơn giá trị tối đa ');
trở lại 0;
}

srand ( thời gian (0));


printf ('10 Số Ngẫu nhiên từ% d đến% d => ',min,tối đa);

(tôi=0;tôi<10;tôi++)
{
printf ('%NS ',( hàng ngang () % (tối đa-min+1)) +min);
}

printf (' ');
trở lại 0;
}


Trong Ví dụ4.c, chúng tôi đã lấy phạm vi từ người dùng và tạo một số ngẫu nhiên trong phạm vi này. Công thức là: rand ()% (tối đa - tối thiểu +1)) + tối thiểu

//Example5.c

#bao gồm
#bao gồm
#bao gồm

NSchủ chốt()
{

NStôi;

srand ( thời gian (0));

printf ('10 Số Ngẫu nhiên từ 0,0 đến 1,0 => ');

(tôi=0;tôi<10;tôi++)
{
printf ('%NS ',((trôi nổi) hàng ngang () /RAND_MAX));
}

printf (' ');
trở lại 0;
}


Trong Ví dụ5.c, chúng ta đã thấy cách chúng ta có thể tạo các số ngẫu nhiên giữa float 0,0 và 1,0 Công thức là: (float) rand () / RAND_MAX)

//Example6.c

#bao gồm
#bao gồm
#bao gồm

NSchủ chốt()
{

NStôi;
trôi nổitối đa,min;

printf ('Nhập giá trị Min =>');
scanf ('%NS'&min);
printf ('Nhập giá trị lớn nhất =>');
scanf ('%NS'&tối đa);

nếu như(min>tối đa)
{
printf ('Giá trị tối thiểu lớn hơn giá trị tối đa ');
trở lại 0;
}

srand ( thời gian (0));

printf ('10 Số Ngẫu nhiên giữa% f và% f => ',min,tối đa);

(tôi=0;tôi<10;tôi++)
{
printf ('%NS ',min+ ((trôi nổi) hàng ngang () /(RAND_MAX/(tối đa-min))));
}

printf (' ');
trở lại 0;
}


Trong Ví dụ6.c, chúng tôi đã lấy phạm vi từ người dùng và tạo một số ngẫu nhiên trong phạm vi này (cả hai đều bao gồm). Công thức là: tối thiểu + ((float) rand () / (RAND_MAX / (tối đa - tối thiểu)))

Phần kết luận:

Trong bài viết này, chúng ta đã tìm hiểu cách tạo số ngẫu nhiên bằng cách sử dụng hàng ngang()srand () hàm số. Không có gì đảm bảo về chất lượng của các số ngẫu nhiên được tạo bởi hàm rand, nhưng nó đủ tốt để sử dụng bình thường.