Podręcznik
2. Tablice wielowymiarowe
2.1. Generowanie liczb losowych
We wszystkich pokazywanych do tej pory przykładach tablice były wypełniane danymi podawanymi przez użytkownika. Zwłaszcza w przypadku tablic wielowymiarowych o dużych wymiarach jest to proces czasochłonny. Tablice możemy wypełniać także za pomocą losowania do nich wartości. W tym celu należy wykorzystać funkcję rand()
z biblioteki cstdlib
. Funkcja generuje liczbę losową całkowitą o rozkładzie jednostajnym z przedziału <0, RAND_MAX>
, gdzie RAND_MAX
typu int jest stałą (równą 32767). Domyślnie funkcja rand()
korzysta z predefiniowanego ziarna losowości, więc każdorazowe uruchomienie programu bez zmiany tego ziarna spowoduje wygenerowanie takiej samej sekwencji "losowych" liczb. Aby to zmienić, stosuje się funkcję srand(unsigned int seed)
, która pozwala ustawić ziarno na nową wartość. Typowo stosuje się funkcję srand(time(0))
, by ziarno było oparte na aktualnym czasie systemowym, co zapewnia większą losowość przy każdym uruchomieniu programu. Korzystając z funkcji rand()
możliwe jest wylosowanie liczby z dowolnego przedziału za pomocą prostych operacji matematycznych.
Za pomocą wyprowadzonego wzoru możemy losować liczbę rzeczywistą (double) z przedziału <a;b>. Korzystając z właściwości działania modulo możemy w analogiczny sposób wyprowadzić wzór na losowanie liczb całkowitych.
Wzór umożliwia wylosowanie liczby całkowitej (int) z przedziału <a;b>.