C Programiranje

rand () Funkcija u jeziku C

rand () Funkcija u jeziku C
U jeziku C, rand () funkcija se koristi za Generator pseudo brojeva (PRNG). Slučajni brojevi generirani funkcijom rand () nisu uistinu slučajni. To je slijed koji se periodično ponavlja, ali razdoblje je toliko veliko da ga možemo zanemariti. The rand () funkcija djeluje tako što pamti vrijednost sjemena koja se koristi za izračunavanje sljedećeg slučajnog broja i sljedećeg novog sjemena. U ovom ćemo članku detaljno razgovarati o tome kako se slučajni brojevi mogu generirati pomoću rand () funkcija. Pa, krenimo!

Datoteka zaglavlja:

stdlib.h

Sintaksa:

int rand (void)

Povratne vrijednosti:

Ova funkcija vraća sljedeći pseudo-slučajni broj u nizu. Vrijednost raspona brojevne serije je između 0 i RAND_MAX. RAND_MAX je makronaredba definirana u stdlib.h datoteka zaglavlja, čija je vrijednost maksimalna vrijednost, koja se može vratiti funkcijom rand (). Vrijednost RAND_MAX veća je, ali ne manja od 32767, ovisno o C knjižnicama.

// Primjer1.c
#include
#include
int main ()

int i;
printf ("10 slučajnih brojeva => \ n");
za (i = 0; i<10;i++)

printf ("% d", rand ());

printf ("\ n");
return 0;


U Primjeru1.c, pozivamo funkciju rand () u svakoj iteraciji for petlje i ispisujemo povratnu vrijednost funkcije. Slijed vrijednosti funkcije rand () jednak je svaki put kad pokrenemo program. Prema zadanim postavkama, sjeme funkcije rand postavljeno je na 1.

Sjeme za funkciju rand možemo postaviti pomoću srand () funkcija. Sjeme se može postaviti samo jednom i prije prvog puta rand () poziv funkcije.

srand () funkcija:

Datoteka zaglavlja:

stdlib.h

Sintaksa:

int srand (nepotpisano int sjeme)

Argumenti:

Ova funkcija uzima 1 argument

sjeme: Cjelobrojna vrijednost koja se koristi kao izvor za novi niz pseudo-slučajnih brojeva.

Povratne vrijednosti:

Nijedna

// Primjer2.c
#include
#include
#include
int main ()

int i;
srand (vrijeme (0));
printf ("10 slučajnih brojeva => \ n");
za (i = 0; i<10;i++)

printf ("% d", rand ());

printf ("\ n");
return 0;


U Primjeru2.c, koristili smo funkciju srand () za postavljanje početnog sjemena slijeda slučajnih brojeva generiranih funkcijom rand (). Svaki put kad se program pokrene, generira se drugačiji redoslijed. U srand (), funkcija vremena (0) (deklarirana u vrijeme.h datoteka zaglavlja) koristi se kao sjeme. Funkcija this time (0) vraća broj sekundi proteklih od epohe (00:00:00, 1. siječnja 1970.). To i dalje može proizvesti iste sekvence ako pokrenete program u istoj sekundi.

// Primjer3.c
#include
#include
#include
int main ()

int i;
srand (vrijeme (0));
printf ("10 slučajnih brojeva između 1 i 10 => \ n");
za (i = 0; i<10;i++)

printf ("% d", (rand ()% 10) + 1);

printf ("\ n");
return 0;


U Primjeru3.c vidjeli smo kako se slučajni brojevi mogu generirati između 1 i 10.

// Primjer4.c
#include
#include
#include
int main ()

int i, max, min;
printf ("Unesite minimalnu vrijednost =>");
scanf ("% d", & min);
printf ("Unesite maksimalnu vrijednost =>");
scanf ("% d", & max);
ako (min> max)

printf ("Minimalna vrijednost veća je od maksimalne vrijednosti \ n");
return 0;

srand (vrijeme (0));
printf ("10 slučajnih brojeva između% d i% d => \ n", min, max);
za (i = 0; i<10;i++)

printf ("% d", (rand ()% (max - min +1)) + min);

printf ("\ n");
return 0;


U primjeru4.c uzeli smo raspon od korisnika i generirali slučajni broj unutar tog raspona. Formula je: rand ()% (max - min +1)) + min

// Primjer5.c
#include
#include
#include
int main ()

int i;
srand (vrijeme (0));
printf ("10 slučajnih brojeva između 0.0 i 1.0 => \ n ");
za (i = 0; i<10;i++)

printf ("% f", ((plutajući) rand () / RAND_MAX));

printf ("\ n");
return 0;


U primjeru5.c, vidjeli smo kako možemo generirati slučajne brojeve između plutajuće 0.0 i 1.0 Formula je: (plutajuće) rand () / RAND_MAX)

// Primjer6.c
#include
#include
#include
int main ()

int i;
plutajuće max, min;
printf ("Unesite minimalnu vrijednost =>");
scanf ("% f", & min);
printf ("Unesite maksimalnu vrijednost =>");
scanf ("% f", & max);
ako (min> max)

printf ("Minimalna vrijednost veća je od maksimalne vrijednosti \ n");
return 0;

srand (vrijeme (0));
printf ("10 slučajnih brojeva između% f i% f => \ n", min, max);
za (i = 0; i<10;i++)

printf ("% f", min + ((plutajući) rand () / (RAND_MAX / (max - min))));

printf ("\ n");
return 0;


U Primjeru6.c, uzeli smo raspon od korisnika i generirali slučajni broj unutar tog raspona (oba uključujući). Formula je: min + ((plutajući) rand () / (RAND_MAX / (max - min)))

Zaključak:

U ovom smo članku naučili kako se slučajni brojevi mogu generirati pomoću rand () i srand () funkcija. Ne postoje jamstva o kvaliteti slučajnih brojeva generiranih funkcijom rand, ali dovoljno je dobra za povremenu upotrebu.

Dodajte geste miša u sustav Windows 10 pomoću ovih besplatnih alata
Posljednjih godina računala i operativni sustavi uvelike su se razvili. Bilo je vrijeme kada su korisnici morali koristiti naredbe za navigaciju kroz ...
Kontrolirajte i upravljajte kretanjem miša između više monitora u sustavu Windows 10
Dvostruki zaslon upravitelja miša omogućuje vam kontrolu i konfiguriranje kretanja miša između više monitora, usporavajući njegovo kretanje blizu gran...
WinMouse vam omogućuje prilagodbu i poboljšanje kretanja pokazivača miša na Windows računalu
Ako želite poboljšati zadane funkcije pokazivača miša, upotrijebite besplatni program WinMouse. Dodaje više značajki koje će vam pomoći da na najbolji...