RAND -funksjon på C -språk

RAND -funksjon på C -språk
På C -språket, Rand () funksjon brukes til Pseudo Number Generator (PRNG). De tilfeldige tallene som genereres av RAND () -funksjonen er ikke virkelig tilfeldige. Det er en sekvens som gjentas med jevne mellomrom, men perioden er så stor at vi kan ignorere den. De Rand () Funksjon fungerer ved å huske en frøverdi som brukes til å beregne det neste tilfeldige tallet og neste nye frø. I denne artikkelen skal vi diskutere i detalj hvordan tilfeldige tall kan genereres ved hjelp av Rand () funksjon. Så la oss komme i gang!

Headerfil:

stdlib.h

Syntaks:

int rand (tomrom)

Returverdier:

Denne funksjonen returnerer neste pseudo-tilfeldig nummer i serien. Rekkevidden til tallserien er mellom 0 og rand_max. Rand_max er en makro definert i stdlib.h headerfil, hvis verdi er den maksimale verdien, som kan returnere med RAND () -funksjonen. Verdien av rand_max er større, men ikke mindre enn 32767 avhengig av C -bibliotekene.

// Eksempel1.c
#inkludere
#inkludere
int main ()

int jeg;
printf ("10 tilfeldige tall => \ n");
for (i = 0; i<10;i++)

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

printf ("\ n");
retur 0;


I eksempel1.C, vi kaller RAND () -funksjonen i hver iterasjon av for Loop og skriver ut returverdien til funksjonen. Verdisekvensen til RAND () -funksjonen er den samme hver gang vi kjører programmet. Som standard er frøet til RAND -funksjonen satt til 1.

Vi kan sette frøet for RAND -funksjonen ved hjelp av srand () funksjon. Frøet kan bare settes en gang, og før første gang Rand () funksjonsanrop.

SRAND () -funksjon:

Headerfil:

stdlib.h

Syntaks:

int srand (usignert int frø)

Argumenter:

Denne funksjonen tar 1 argument

frø: En heltallverdi brukt som frø for en ny serie med pseudo-tilfeldige tall.

Returverdier:

Ingen

// Eksempel2.c
#inkludere
#inkludere
#inkludere
int main ()

int jeg;
Srand (tid (0));
printf ("10 tilfeldige tall => \ n");
for (i = 0; i<10;i++)

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

printf ("\ n");
retur 0;


I eksempel2.C, vi har brukt SRAND () -funksjonen for å stille inn den første frøet til den tilfeldige tallsekvensen generert av RAND () -funksjonen. Hver gang programmet kjøres, genereres en annen sekvens. I Srand (), tid (0) funksjon (erklært i tid.h headerfil) brukes som frø. Denne gangen (0) -funksjonen returnerer antall sekunder siden epoken (00:00:00, 1. januar 1970). Dette kan fremdeles produsere de samme sekvensene hvis du kjører programmet i samme sekund.

// Eksempel3.c
#inkludere
#inkludere
#inkludere
int main ()

int jeg;
Srand (tid (0));
printf ("10 tilfeldige tall mellom 1 og 10 => \ n");
for (i = 0; i<10;i++)

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

printf ("\ n");
retur 0;


I eksempel3.c Vi har sett hvordan tilfeldige tall kan genereres mellom 1 og 10.

// Eksempel4.c
#inkludere
#inkludere
#inkludere
int main ()

int i, Max, min;
printf ("Enter min verdi =>");
scanf ("%d", & min);
printf ("Enter max value =>");
SCANF ("%D", & MAX);
if (min> maks)

printf ("min verdi er større enn maks verdi \ n");
retur 0;

Srand (tid (0));
printf ("10 tilfeldige tall mellom %d og %d => \ n", min, maks);
for (i = 0; i<10;i++)

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

printf ("\ n");
retur 0;


I eksempel4.C Vi har tatt rekkevidden fra brukeren og generert et tilfeldig tall innenfor dette området. Formelen er: rand () % (maks - min +1)) + min

// Eksempel5.c
#inkludere
#inkludere
#inkludere
int main ()

int jeg;
Srand (tid (0));
printf ("10 tilfeldige tall mellom 0.0 og 1.0 => \ n ");
for (i = 0; i<10;i++)

printf ("%f", ((float) rand () /rand_max));

printf ("\ n");
retur 0;


I eksempel5.C, vi har sett hvordan vi kan generere tilfeldige tall mellom float 0.0 og 1.0 Formelen er: (float) rand () /rand_max)

// Eksempel6.c
#inkludere
#inkludere
#inkludere
int main ()

int jeg;
Float Max, min;
printf ("Enter min verdi =>");
Scanf ("%f", & min);
printf ("Enter max value =>");
SCANF ("%F", & MAX);
if (min> maks)

printf ("min verdi er større enn maks verdi \ n");
retur 0;

Srand (tid (0));
printf ("10 tilfeldige tall mellom %f og %f => \ n", min, maks);
for (i = 0; i<10;i++)

printf ("%f", min + ((float) rand () /(rand_max /(maks - min))));

printf ("\ n");
retur 0;


I eksempel6.C, vi har tatt rekkevidden fra brukeren og generert et tilfeldig tall innenfor dette området (begge inkluderende). Formelen er: min + ((float) rand () /(rand_max /(maks - min))))

Konklusjon:

I denne artikkelen har vi lært hvordan tilfeldige tall kan genereres ved bruk av Rand () og srand () funksjon. Det er ingen garantier for kvaliteten på de tilfeldige tallene som genereres av RAND -funksjonen, men den er god nok for tilfeldig bruk.