Fejlécfájl:
stdlib.h
Szintaxis:
int rand (érvénytelen)
Visszaadási értékek:
Ez a függvény a sorozat következő pszeudo-véletlen számát adja vissza. A számsor tartomány értéke 0 és RAND_MAX között van. A RAND_MAX itt definiált makró stdlib.h fejlécfájl, amelynek értéke a maximális érték, amelyet rand () függvénnyel lehet visszaadni. A RAND_MAX értéke nagyobb, de nem kevesebb, mint 32767 a C könyvtáraktól függően.
//Példa1.c
#befoglalni
#befoglalni
intfő-()
{
intén;
printf ('10 Véletlen számok => n');
számára(én=0;én<10;én++)
{
printf ('%d', sor ());
}
printf (' n');
Visszatérés 0;
}
Az 1.c példában meghívjuk a rand () függvényt a ciklus minden iterációjában, és kinyomtatjuk a függvény visszatérési értékét. A rand () függvény értékrendje minden alkalommal ugyanaz, amikor futtatjuk a programot. Alapértelmezés szerint a rand függvény magja 1 -re van állítva.
Beállíthatjuk a magot a rand függvényhez a srand () funkció. A vetőmag csak egyszer és az első alkalom előtt állítható be sor() függvényhívás.
srand () függvény:
Fejlécfájl:
stdlib.h
Szintaxis:
int srand (nem aláírt int mag)
Érvek:
Ez a függvény 1 argumentumot tartalmaz
mag: Egy egész szám, amelyet vetőmagként használnak az ál-véletlen számok új sorozatához.
Visszaadási értékek:
Egyik sem
//Példa2.c#befoglalni
#befoglalni
#befoglalni
intfő-()
{
intén;
srand ( idő (0));
printf ('10 Véletlen számok => n');
számára(én=0;én<10;én++)
{
printf ('%d', sor ());
}
printf (' n');
Visszatérés 0;
}
A 2.c példában a srand () függvénnyel állítottuk be a rand () függvény által generált véletlenszám -sorozat kezdeti magját. A program minden egyes futtatásakor más sorrend jön létre. Srand (), idő (0) függvény (in idő.h fejléc fájl) vetőmagként használható. Ez az idő (0) függvény a korszak óta eltelt másodpercek számát adja vissza (00:00:00, 1970. január 1.). Ez még mindig ugyanazokat a sorozatokat eredményezheti, ha ugyanazon a másodpercen belül futtatja a programot.
#befoglalni
#befoglalni
#befoglalni
intfő-()
{
intén;
srand ( idő (0));
printf ('10 Véletlen szám 1 és 10 között => n');
számára(én=0;én<10;én++)
{
printf ('%d',( sor () %10) + 1);
}
printf (' n');
Visszatérés 0;
}
A 3.c példában láttuk, hogyan lehet véletlen számokat generálni 1 és 10 között.
#befoglalni
#befoglalni
#befoglalni
intfő-()
{
intén,max,min;
printf ('Adja meg a minimális értéket =>');
scanf ('%d', &min);
printf ('Adja meg a maximális értéket =>');
scanf ('%d', &max);
ha(min>max)
{
printf ('A minimális érték nagyobb, mint a maximális érték n');
Visszatérés 0;
}
srand ( idő (0));
printf ('10 Véletlen számok %d és %d között => n',min,max);
számára(én=0;én<10;én++)
{
printf ('%d',( sor () % (max-min+1)) +min);
}
printf (' n');
Visszatérés 0;
}
A4.c példában a felhasználótól vettük a tartományt, és ezen a tartományon belül véletlen számot generáltunk. A képlet a következő: rand ()% (max - min +1)) + min
#befoglalni
#befoglalni
#befoglalni
intfő-()
{
intén;
srand ( idő (0));
printf ('10 Véletlen szám 0,0 és 1,0 között => n');
számára(én=0;én<10;én++)
{
printf ('%f',((úszó) sor () /RAND_MAX));
}
printf (' n');
Visszatérés 0;
}
Az 5.c példában láttuk, hogyan hozhatunk létre véletlen számokat az úszó 0.0 és 1.0 között. A képlet a következő: (float) rand () /RAND_MAX)
#befoglalni
#befoglalni
#befoglalni
intfő-()
{
intén;
úszómax,min;
printf ('Adja meg a minimális értéket =>');
scanf ('%f', &min);
printf ('Adja meg a maximális értéket =>');
scanf ('%f', &max);
ha(min>max)
{
printf ('A minimális érték nagyobb, mint a maximális érték n');
Visszatérés 0;
}
srand ( idő (0));
printf ('10 Véletlen számok %f és %f => között n',min,max);
számára(én=0;én<10;én++)
{
printf ('%f',min+ ((úszó) sor () /(RAND_MAX/(max-min))));
}
printf (' n');
Visszatérés 0;
}
A 6.c példában a felhasználótól vettük a tartományt, és ezen a tartományon belül véletlenszerű számot generáltunk (mindkettőt beleértve). A képlet a következő: min + ((float) rand () /(RAND_MAX /(max - min)))
Következtetés:
Ebben a cikkben megtanultuk, hogyan lehet véletlen számokat előállítani a sor() és srand () funkció. A rand függvény által generált véletlen számok minőségére nincs garancia, de alkalmi használatra elég jó.