- Pseudo- Təsadüfi Nömrələr Generatoru (PRNG) C++ dilində
- rand Və srand C++-da Funksiyalar
- Rand () və srand () arasındakı fərq
- C++ Random Float
- C++ Random Number Between 0 And 1
- C++ Random Number Between 1 And 10
- Frequently Asked Questions
- Conclusion
Bu Təlimat C++-da Təsadüfi Nömrələr Yaratmaq üçün rand() və srand() funksiyalarının İstifadəsini Təfərrüatlı Təsvir edir:
Biz tez-tez istehsal etmək üçün tətbiqimizdə təsadüfi ədədlərdən istifadə etməyi tələb edirik. simulyasiyalar və ya oyunlar və təsadüfi hadisələr tələb edən digər proqramlar.
Məsələn, zar oyununda, təsadüfi hadisələr olmadan, hər dəfə zar atdığımızda eyni tərəf görünəcək. zarlarla arzuolunmaz nəticələr verir.
Beləliklə, bizim ixtiyarımızda təsadüfi ədədlər generatorunun olması zəruri olur. Fiziki mühitdə biz təsadüfi hadisələr yarada bilərik, lakin kompüterlərə gəldikdə bu mümkün deyil.
Bunun səbəbi kompüterlərdə hər şeyin binar olmasıdır, yəni 0 və ya 1 (doğru və ya yanlış) və onların arasında heç bir şey yoxdur. Beləliklə, kompüterlər adətən proqnozlaşdırıla bilən hadisələr yaradır və təsadüfi hadisələr yarada bilmirlər.
Əvəzində kompüterlər psevdo-təsadüfi nömrə generatoru (PRNG) istifadə edərək edilən təsadüfi simulyasiya edir. . C++ təsadüfi ədədlər generatoruna malikdir və bir çox proqramlarda istifadə oluna bilər.
Bu dərslikdə biz C++ dilində təsadüfi ədədlər yaratmaq üçün funksiyaları/yanaşmaları ətraflı müzakirə edəcəyik.
Pseudo- Təsadüfi Nömrələr Generatoru (PRNG) C++ dilində
Ümumiyyətlə, psevdo-təsadüfi nömrə generatoru (PRNG) toxum və ya başlanğıc nömrə götürən və onu fərqli olan başqa nömrəyə çevirən proqram kimi müəyyən edilə bilər. toxumdanriyazi əməliyyatlardan istifadə etməklə.
Bu proses hər dəfə sonuncu yaradılan ədədi alaraq təkrar-təkrar həyata keçirilir. Hər dəfə yaradılan nömrə əvvəlki nömrələrlə əlaqəsi yoxdur. Beləliklə, bu proqram təsadüfi görünən bir sıra nömrələr yaratmağa qadirdir.
C++ dili daxili psevdo-təsadüfi ədəd generatoru ilə gəlir və iki funksiyanı təmin edir rand () və srand () onlardan istifadə edilə bilər. təsadüfi ədədlər yaradın.
Gəlin bu iki funksiyanı ətraflı müzakirə edək.
rand Və srand C++-da Funksiyalar
srand ()
Funksiya prototipi: void srand (imzasız int toxum);
Parametrlər: seed – Pseudo-təsadüfi ədəd generatoru alqoritmi tərəfindən toxum kimi istifadə ediləcək tam dəyər .
Qayıt dəyəri: Yoxdur
Təsvir: srand funksiyası "təsadüfi" adlı parametrlə psevdo-təsadüfi ədədlərin ardıcıllığını işə salmaq üçün istifadə olunur. toxum'. Rand funksiyasının çıxışını təsadüfi göstərir. Əks halda, rand () funksiyasının çıxışı onu hər dəfə çağırdığımızda eyni olacaq.
Beləliklə, təsadüfi ədəd generatorunu srand () funksiyası ilə toxumlasaq, generatoru nöqtədən işə salacaq. bu, srand-a ötürülən arqument dəyərindən asılıdır. Təsadüfi ədəd generatorunu sistem vaxtı ilə Məsələn, rand () funksiyasına ilk çağırışdan əvvəl təyin etsək, o zaman biz hər dəfə işə saldığımız zaman təsadüfi ədədlər yaradacaq.proqramı.
Qeyd edək ki, biz adətən rand () funksiyasına çağırışdan əvvəl srand () funksiyasını hər dəfə təsadüfi ədədlər yaratdıqda deyil, yalnız bir dəfə çağırmalıyıq.
rand ( )
Funksiya prototipi: int rand (boşdur);
Parametrlər: heç biri
Qayıt dəyər: 0 və RAND_MAX arasında tam dəyər.
Təsvir: Rand () funksiyası ardıcıllıqla növbəti təsadüfi ədədi yaradır. Yaradılan ədəd 0 və RAND_MAX arasında olan psevdo-təsadüfi tam ədəddir. RAND_MAX başlıqda ümumiyyətlə 32767 dəyərinə təyin edilmiş sabitdir.
#include #include #include int main() { std::srand(static_cast(std::time(nullptr))); for (int count=1; count = 100; ++count) { std::cout std::rand() "\t"; // display 5 random numbers per row if (count % 5 == 0) std::cout "\n"; } return 0; }
Çıxış:
Yuxarıdakı proqramda biz var sistem saatını srand funksiyası üçün toxum kimi verərək ilk 100 təsadüfi ədədi yaratdı. Bu proqramda biz həm srand, həm də rand funksiyalarından istifadə etdik. Nəzərə alın ki, sistem saatı toxum kimi olduğundan, biz proqramı icra etdikdə yaradılan çıxış hər dəfə fərqli olacaq.
Rand () və srand () arasındakı fərq
rand() | srand() |
---|---|
Təsadüfi ədədlər yaratmaq üçün istifadə olunur. | Rand () funksiyası tərəfindən istifadə edilən PRNG-ni səpir. |
Təsadüfi ədədlər yaratmaq istədiyimiz qədər zəng edilir. | Təsadüfi ədəd generatorunu görmək üçün yalnız bir dəfə zəng edilir. |
Heç bir arqument qəbul etmir. | Təsadüfi ədəd generatorunu səpmək üçün istifadə olunan parametri götürür. |
Arqumentlərin ardıcıllığını qaytarır.hər dəfə çağırılanda təsadüfi ədədlər. | Qiymət qaytarmır. |
C++ Random Float
Rand () funksiyası yuxarıda gördük ki, standart olaraq müəyyən hallarda daşmağa səbəb ola biləcək tam dəyər qaytarır. Beləliklə, float və ya ikiqat dəyərdən istifadə edə bilərik. Rand () funksiyasının qaytarılan qiymətini "float"a çevirməklə float təsadüfi ədədlər yarada bilərik.
Beləliklə, aşağıdakı float 0.0 və 1.0 (hər ikisi daxil olmaqla) arasında təsadüfi ədəd yaradacaq.
coutSimilarly, the below line will generate a random number between 1.2 and 3.4
cout1.2 + static_cast (rand()) / ( static_cast (RAND_MAX/(3.4-1.2)));In our subsequent example below we make use of random float to generate the output.
C++ Random Number Between 0 And 1
We can use srand () and rand () function to generate random numbers between 0 and 1. Note that we have to cast the output of rand () function to the decimal value either float or double.
The default return value of rand () function i.e. integer is inadequate to display random numbers between 0 and 1 which are fractions.
C++ program given below displays the first five random numbers between 0 and 1.
#include #include using namespace std; int main() { cout"Random numbers generated between 0 and 1:"="" ="" cout="" endl;="" for="" i="" i++)="" null="" pre="" rand()="" rand_max="" return="" srand(="" {="" }="" }=""> Output:
We see that the output of the program is the random number between 0 and 1 which are fractions.
If we don’t cast the return value of rand () function to float or double, then we will get 0 as the random number.
C++ Random Number Between 1 And 10
The next example is to generate random numbers between 1 and 10. Following is the C++ program that generates random numbers.
We call the srand function with the system clock and then call the rand function with module 10 operators.
#include #include #include using namespace std; int main() { srand(time(0)); // Initialize random number generator. cout"Random numbers generated between 1 and 10:"="" cout="" for(int="" i="0;i10;i++)" pre="" return="" }=""> Output:
In the above program, we generate the first 10 random numbers between 1 and 10. Note that every time the program is run, it will generate different sets of numbers because of the srand function being called.
Frequently Asked Questions
Q #1) What is the header file for Random function in C++?
Answer: The functions to generate random numbers, rand and srand are defined in cstdlib> header of C++.
Q #2) What is Rand_max in C++?
Answer: RAND_MAX is a constant in header generally set to value 32767. The pseudo-random number generator (PRNG) generates random numbers between 0 to RAND_MAX.
Q #3) How does the random function work?
Answer: C++ supports two random functions i.e. srand () and rand ( ). The function srand () seeds the random number generator used by rand () function which generates the random number sequence depending on the initial seed provided.
Q #4) How do you srand with time?
Answer: The srand function seeds the pseudo-random number generator (PRNG) used by the rand () function. It is a standard practice to use the result of a call to time (0) as seed. This time function returns the value, a number of seconds since 00:00 hours, Jan 1, 1970, UTC (current UNIX timestamp).
Thus the value of seed changes every second. Hence every time when srand is called with time function, a new set of the random numbers is generated.
Conclusion
We have discussed Random Number Generation in detail in this tutorial. Programming languages or in general computers do not generate random numbers as they are designed to give predictive output. Hence, we need to simulate randomness.
In order to simulate randomness, we make use of pseudo-random number generator (PRNG) which is in-built in C++. Thus using the two functions, rand () and srand () we can generate random numbers in C++.
The function srand () is used to provide seed for generating random numbers while rand () function generates the next random number in the sequence.