Programski jezik C++
Slučajan broj /RANDOM/ - funkcija rand()
|
|
|
Slika 1. Vrijednost = rand() % max |
|
Slika 3. Vrijednost = rand() % (max-min) + min |
|
|
|
|
|
|
Slika 2. Vrijednost = rand() % max |
|
Slika 4. Vrijednost = rand() % (max-min) + min |
Opis |
Primjer ispisa naredbe |
Za izračunavanje slučajnog broja u programskom jeziku C++ koristi se matematička funkcija
rand()
Opseg rezultata je od 0 do 1 (bez vrijednosti 1). |
rand() |
Ako želim da opseg vrijednosti od 0 do izabranog broja pišemo:
rand()% Izabrani_broj
Opseg rezultata je od 0 do Izabranog broja(bez vrijednosti izabranog broja). |
rand() % 3 // za vrijednosti od 0 do 3. |
Generisati slučajan broj
Program koristi srand () funkciju koja generišes slučajan broj korišćenjem sistemskog sata, to zahtjeva inicijalizaciju generatora slučajnog broja. Zato je u program uključena biblitoteka za sistemski sata #include <ctime>, a za generator bibiloteka #include <cstdlib>. Inicijalizacija genratora slučajnog broja se izvodi naredbom
srand(time(0)); // Inicijalizacija genratora slučajnog broja
Maksimalna vrijednost slučajno generisanog broja:
maksimalan slučajan broj RAND_MAX je: 2 31 = 2147483647
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
srand(time(0)); // Inicijalizacija genratora slučajnog broja
cout << RAND_MAX << endl; // maksimalna slucajan broj
return 0;
}
Ispis na ekranu:
2147483647
Generisanje slučajnog broja u osegu /RANDOM NUMBER IN RANGE/
Izdvajanje cifara se izvodi operatorom % (moduo). Vidi slijedeće primjere:
rand() % 10 // jednocifren slučajan broj [0-9]
rand() % 100 // slučajan broj od 0 do 99
rand() % 10 + 1 // slučajan broj od 1 do 10 (uključeno) [1, 10]
rand() % 90 // izdvajanje brojeva od 0 do (90-1)
rand() % 90 + 10 // dvocifren slučajan broj [10, 99]
rand() % 900 + 100 // trocifren slučajan broj [10, 99]
rand() % 9000 + 1000 // četverocifren slučajan broj [10, 99]
Listing programa:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
srand(time(0)); // Inicijalizacija genratora slučajnog broja
int a = rand(); // generisanje slučajnog broja
cout << a << endl;
return 0;
}
Ispis na ekranu:
1127606845
II izvršenje programa:
898885324
Dvocifren broj
Pri izdvajanju dvije cifre sa desna može se desiti da je cifra desetica nula pa na taj način se dobija jednocifren broj. Zato se koristi Vrijednost = (max-min) * rand() + min.
Prikazan je ispis 15 generisanih dvocifrenih brojeva.
Listing programa:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
srand(time(0)); // Inicijalizacija genratora slučajnog broja
int a, dvo; // generisanje slučajnog broja
for(int i = 1; i <= 15; ++i) {
a = rand();
dvo = (a % 90) + 10;
cout << dvo << endl;
}
return 0;
}
Ispis na ekranu:
31
33
24
35
97
17
40
56
33
11
34
82
15
63
37
Index
|