Programski jezik C++
Slučajan broj /RANDOM/ - funkcija rand()
 |
|
 |
Slika 1. Vrijednost = max * rand() |
|
Slika 3. Vrijednost = (max-min) * rand() + min |
|
|
|
 |
|
 |
Slika 2. Vrijednost = max * rand() |
|
Slika 4. Vrijednost = (max-min) * rand() + 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 vridnosti 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 vrijednsoti 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
Izdvajanje cifara se izvodi operatorom % (moduo). Vidi slijedeće primjere:
rand() % 10 // jednocifren slučajan broj
rand() % 100 // dvocifren slučajan broj
rand() % 10 + 1 // slučajan broj od 1 do 10 (uključeno)
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
|