funkcja rand w języku c

funkcja rand w języku c
W języku C, skraj() funkcja jest używana dla Pseudo Number Generator (PRNG). Losowe liczby wygenerowane przez funkcję rand () nie są naprawdę losowe. Jest to sekwencja, która powtarza się okresowo, ale okres jest tak duży, że możemy ją zignorować. skraj() Funkcja działa poprzez zapamiętanie wartości nasion, która służy do obliczenia następnej liczby losowej i następnego nowego nasienia. W tym artykule szczegółowo omówimy, w jaki sposób można wygenerować liczby losowe za pomocą skraj() funkcjonować. Więc zacznijmy!

Plik nagłówka:

stdlib.H

Składnia:

int rand (void)

Zwracaj wartości:

Ta funkcja zwraca następny pseudo-lodowski numer w serii. Wartość zakresu serii liczb wynosi od 0 do RAND_MAX. Rand_max jest macro zdefiniowany w stdlib.H plik nagłówka, którego wartość to maksymalna wartość, która może zwrócić funkcję rand (). Wartość Rand_max jest większa, ale nie mniejsza niż 32767 w zależności od bibliotek C.

//Przykład 1.C
#włączać
#włączać
int main ()

int i;
printf („10 liczb losowych => \ n”);
dla (i = 0; i<10;i++)

printf („%d”, rand ());

printf („\ n”);
powrót 0;


W przykładzie1.C, nazywamy funkcję rand () w każdej iteracji dla pętli i drukujemy wartość zwracaną funkcji. Sekwencja wartości funkcji rand () jest taka sama za każdym razem, gdy uruchamiamy program. Domyślnie ziarno funkcji RAND jest ustawione na 1.

Możemy ustawić ziarno funkcji rand za pomocą SRAND () funkcjonować. Ziarno można ustawić tylko raz i przed pierwszym razem skraj() wywołanie funkcji.

funkcja srand ():

Plik nagłówka:

stdlib.H

Składnia:

int srand (unsigned int nasiona)

Argumenty:

Ta funkcja przyjmuje 1 argument

nasionko: Wartość liczb całkowita używana jako ziarno nowej serii pseudo-lodowatów.

Zwracaj wartości:

Nic

// Przykład2.C
#włączać
#włączać
#włączać
int main ()

int i;
SRAND (czas (0));
printf („10 liczb losowych => \ n”);
dla (i = 0; i<10;i++)

printf („%d”, rand ());

printf („\ n”);
powrót 0;


W przykładzie2.C, użyliśmy funkcji srand () do ustawienia początkowej ziarna losowej sekwencji liczbowej generowanej przez funkcję rand (). Za każdym razem, gdy program jest uruchamiany, generowana jest inna sekwencja. W funkcji srand (), czas (0) (zadeklarowany w czas.H plik nagłówka) jest używany jako ziarno. Tym razem (0) Funkcja zwraca liczbę sekund, które upłynęły od epoki (00:00:00, 1 stycznia 1970). To może nadal tworzyć te same sekwencje, jeśli uruchomisz program w tej samej sekundzie.

// Przykład3.C
#włączać
#włączać
#włączać
int main ()

int i;
SRAND (czas (0));
printf („10 liczb losowych między 1 a 10 => \ n”);
dla (i = 0; i<10;i++)

printf („ %d”, (rand () %10) + 1);

printf („\ n”);
powrót 0;


W przykładzie3.c Widzieliśmy, w jaki sposób można wygenerować liczby losowe między 1 a 10.

// Przykład4.C
#włączać
#włączać
#włączać
int main ()

int I, Max, min;
printf („Wprowadź wartość Min =>”);
Scanf („%d” i min);
printf („Wprowadź maksymalną wartość =>”);
Scanf („%D” i Max);
if (min> max)

printf („Wartość min jest większa niż wartość maksymalna \ n”);
powrót 0;

SRAND (czas (0));
printf („10 losowych liczb między %d i %d => \ n”, min, max);
dla (i = 0; i<10;i++)

printf („ % d”, (rand () % (maks. - min +1)) + min);

printf („\ n”);
powrót 0;


W przykładzie4.c wzięliśmy zakres od użytkownika i wygenerowaliśmy liczbę losową w tym zakresie. Formuła to: rand () % (max - min +1)) + min

// Przykład5.C
#włączać
#włączać
#włączać
int main ()

int i;
SRAND (czas (0));
printf ("10 losowych liczb między 0.0 i 1.0 => \ n ”);
dla (i = 0; i<10;i++)

printf („%f”, (float) rand () /rand_max));

printf („\ n”);
powrót 0;


W przykładzie 5.c, widzieliśmy, jak możemy generować liczby losowe między pływakiem 0.0 i 1.0 Formuła to: (float) rand () /rand_max)

// Przykład6.C
#włączać
#włączać
#włączać
int main ()

int i;
float Max, min;
printf („Wprowadź wartość Min =>”);
Scanf („%f” i min);
printf („Wprowadź maksymalną wartość =>”);
Scanf („%f” i max);
if (min> max)

printf („Wartość min jest większa niż wartość maksymalna \ n”);
powrót 0;

SRAND (czas (0));
printf („10 losowych liczb między %f i %f => \ n”, min, max);
dla (i = 0; i<10;i++)

printf („%f”, min + (float) rand () /(rand_max /(max - min))));

printf („\ n”);
powrót 0;


W przykładzie6.C, przyjęliśmy zakres od użytkownika i wygenerowaliśmy liczbę losową w tym zakresie (oba włącznie). Formuła to: Min + ((float) rand () /(rand_max /(max - min)))

Wniosek:

W tym artykule dowiedzieliśmy się, w jaki sposób losowe liczby można wygenerować za pomocą skraj() I SRAND () funkcjonować. Nie ma gwarancji na temat jakości liczb losowych generowanych przez funkcję RAND, ale jest wystarczająco dobry do swobodnego użytku.