Generowanie liczb pseudo losowych za pomocą funkcji srand oraz rand

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 31069 razy

Funkcje srand oraz rand wymagają załączenia pliku nagłówkowego stdlib.h, dodatkowo w programie użyta została funkcja time, dla której konieczne jest załączenie pliku nagłówkowego time.h. Oto kod programu generującego 5 liczb pseudolosowych:

#include <iostream> #include <stdlib.h> // niezbędne dla funkcji srand i rand #include <time.h> // niezbędne dla funkcji time #include <windows.h> //niezbędne dla funkcji setlocale using namespace std; int main(){ setlocale(LC_CTYPE,"Polish"); // obsługa polskich znaków srand(time(NULL)); // ta funkcja ustawia losowy punkt generowania danych, w tym przypadku wykorzystana została funkcja time z pliku nagłówkowego time.h, funkcja ta zwraca liczbę określającą czas cout<<"Generowanie liczb pseudolosowych dla pełnego zakresu liczb:"<<endl<<endl; for(int i = 0; i < 5; i++){ cout<<rand() // ta funkcja zwraca liczbę pseudolosową z zakresu od 0 do 32767, a na jej działanie ma wspływ funkcja srand <<endl; } cout<<endl<<"Generowanie liczb pseudolosowych dla zakresu od -100 do 100:"<<endl<<endl; for(int i = 0; i < 5; i++){ cout<<(rand() % 200) - 100 // w ten sposób uzyskuje się pseudolosowe liczby o zakresie od - 100 do 100 <<endl; } cout<<endl<<endl<<"Wciśnij enter, aby zamknąć program..."; cin.get(); return 0; }

Przykładowy wynik działania programu:

Generowanie liczb pseudolosowych dla pełnego zakresu liczb:
 
13584
29366
25171
16259
29390
 
Generowanie liczb pseudolosowych dla zakresu od -100 do 100:
 
40
-38
66
56
-17
 
 
Wciśnij enter, aby zamknąć program...

Funkcja srand wraz z funkcją time sprawiają, że po uruchomieniu programu za każdym nowym jego uruchomieniem otrzymane zostaną nowe zestawy liczb. Gdyby usunąć lub wykomentować linijkę kodu z funkcją srand, wtedy przy każdym uruchomieniu programu wygenerowane zostałyby te same liczby.

Propozycje książek