rand () Funksjon i C -språk

Rand Function C Language



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

Header File:

stdlib.h







Syntaks:

int rand (ugyldig)



Returverdier:

Denne funksjonen returnerer det neste pseudo-tilfeldige tallet i serien. Områdeverdien til tallserien er mellom 0 og RAND_MAX. RAND_MAX er en makro definert i stdlib.h header -fil, hvis verdi er maksimalverdi, som kan returnere etter rand () -funksjonen. Verdien av RAND_MAX er større, men ikke mindre enn 32767, avhengig av C -bibliotekene.



//Eksempel1.c

#inkludere
#inkludere

inthoved-()
{

intJeg;

printf ('10 Tilfeldige tall => n');

til(Jeg=0;Jeg<10;Jeg++)
{
printf ('%d', rad ());
}

printf (' n');
komme tilbake 0;
}


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





Vi kan sette frøet til randfunksjonen ved hjelp av srand () funksjon. Frøet kan settes bare en gang, og før første gang rad() funksjonsanrop.

srand () funksjon:

Header File:

stdlib.h



Syntaks:

int srand (usignert int seed)

Argumenter:

Denne funksjonen tar 1 argument

frø: En heltallsverdi som brukes som et frø for en ny serie med pseudo-tilfeldige tall.

Returverdier:

Ingen

//Eksempel2.c

#inkludere
#inkludere
#inkludere

inthoved-()
{

intJeg;

srand ( tid (0));

printf ('10 Tilfeldige tall => n');

til(Jeg=0;Jeg<10;Jeg++)
{
printf ('%d', rad ());
}

printf (' n');
komme tilbake 0;
}


I eksempel2.c har vi brukt srand () -funksjonen for å angi det opprinnelige seedet for den tilfeldige tallsekvensen generert av Rand () -funksjonen. Hver gang programmet kjøres, genereres en annen sekvens. I srand (), funksjon (time) (deklarert i tid. h header file) brukes som et frø. Denne funksjonen (0) returnerer antall sekunder som har gått 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

inthoved-()
{

intJeg;

srand ( tid (0));

printf ('10 Tilfeldige tall mellom 1 og 10 => n');

til(Jeg=0;Jeg<10;Jeg++)
{
printf ('%d',( rad () %10) + 1);
}

printf (' n');
komme tilbake 0;
}


I eksempel 3.c har vi sett hvordan tilfeldige tall kan genereres mellom 1 og 10.

//Eksempel4.c

#inkludere
#inkludere
#inkludere

inthoved-()
{

intJeg,maks,min;

printf ('Skriv inn Min verdi =>');
scanf ('%d', &min);
printf ('Skriv inn maks verdi =>');
scanf ('%d', &maks);

hvis(min>maks)
{
printf ('Min verdi er større enn maks verdi n');
komme tilbake 0;
}

srand ( tid (0));


printf ('10 Tilfeldige tall mellom %d og %d => n',min,maks);

til(Jeg=0;Jeg<10;Jeg++)
{
printf ('%d',( rad () % (maks-min+1)) +min);
}

printf (' n');
komme tilbake 0;
}


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

//Eksempel5.c

#inkludere
#inkludere
#inkludere

inthoved-()
{

intJeg;

srand ( tid (0));

printf ('10 Tilfeldige tall mellom 0,0 og 1,0 => n');

til(Jeg=0;Jeg<10;Jeg++)
{
printf ('%f',((flyte) rad () /RAND_MAX));
}

printf (' n');
komme tilbake 0;
}


I eksempel5.c har vi sett hvordan vi kan generere tilfeldige tall mellom float 0.0 og 1.0 Formelen er: (flyt) rand () /RAND_MAX)

//Eksempel6.c

#inkludere
#inkludere
#inkludere

inthoved-()
{

intJeg;
flytemaks,min;

printf ('Skriv inn Min verdi =>');
scanf ('%f', &min);
printf ('Skriv inn maks verdi =>');
scanf ('%f', &maks);

hvis(min>maks)
{
printf ('Min verdi er større enn maks verdi n');
komme tilbake 0;
}

srand ( tid (0));

printf ('10 Tilfeldige tall mellom %f og %f => n',min,maks);

til(Jeg=0;Jeg<10;Jeg++)
{
printf ('%f',min+ ((flyte) rad () /(RAND_MAX/(maks-min))));
}

printf (' n');
komme tilbake 0;
}


I eksempel6.c har vi tatt intervallet fra brukeren og generert et tilfeldig tall innenfor dette området (begge inkluderende). Formelen er: min + ((flyt) rand () /(RAND_MAX /(maks - min)))

Konklusjon:

I denne artikkelen har vi lært hvordan tilfeldige tall kan genereres ved hjelp av rad() og srand () funksjon. Det er ingen garantier om kvaliteten på tilfeldige tall som genereres av randfunksjonen, men det er godt nok for tilfeldig bruk.