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.
#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.
#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
#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)
#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.