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