C Programmering

rand () Funksjon i C-språk

rand () Funksjon i C-språk
På C-språket er rand () funksjonen brukes til Pseudotallgenerator (PRNG). Tilfeldige tall generert av rand () -funksjonen er ikke helt tilfeldige. Det er en sekvens som gjentas med jevne mellomrom, men perioden er så stor at vi kan ignorere den. De rand () funksjonen fungerer ved å huske en frøverdi som brukes til å beregne neste tilfeldige tall 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!

Overskriftsfil:

stdlib.h

Syntaks:

int rand (ugyldig)

Returverdier:

Denne funksjonen returnerer det neste pseudo-tilfeldige tallet i serien. Områdeverdien for nummerserien er mellom 0 og RAND_MAX. RAND_MAX er en makro definert i stdlib.h header-fil, hvis verdi er den maksimale verdien, som kan returneres per rand () -funksjon. Verdien av RAND_MAX er større, men ikke mindre enn 32767, avhengig av C-bibliotekene.

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

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

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

printf ("\ n");
retur 0;


I eksempel 1.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 randfunksjonen satt til 1.

Vi kan stille inn frøet for randfunksjonen ved hjelp av srand () funksjon. Frøet kan settes bare én gang, og før første gang rand () funksjonsanrop.

srand () -funksjon:

Overskriftsfil:

stdlib.h

Syntaks:

int srand (usignert int seed)

Argumenter:

Denne funksjonen tar 1 argument

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

Returverdier:

Ingen

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

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

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

printf ("\ n");
retur 0;


I eksempel 2.c, vi har brukt srand () -funksjonen til å angi det første frøet til tilfeldige tallsekvensen generert av rand () -funksjonen. Hver gang programmet kjøres, genereres en annen sekvens. I srand (), time (0) -funksjon (erklært i tid.h header file) brukes som et frø. Denne gangen (0) -funksjonen returnerer antall sekunder som har gått siden epoken (00:00:00, 1. januar 1970). Dette kan fremdeles gi de samme sekvensene hvis du kjører programmet i samme sekund.

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

int i;
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 eksempel 3.c vi har sett hvordan tilfeldige tall kan genereres mellom 1 og 10.

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

int i, maks, min;
printf ("Enter Min value =>");
scanf ("% d", & min);
printf ("Enter Max value =>");
scanf ("% d", & max);
hvis (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 eksempel 4.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 i;
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 eksempel 5.c, vi har sett hvordan vi kan generere tilfeldige tall mellom float 0.0 og 1.0 Formelen er: (float) rand () / RAND_MAX)

// Eksempel 6.c
#inkludere
#inkludere
#inkludere
int main ()

int i;
flyte max, min;
printf ("Enter Min value =>");
scanf ("% f", & min);
printf ("Enter Max value =>");
scanf ("% f", & max);
hvis (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 / (max - min))));

printf ("\ n");
retur 0;


I eksempel 6.c, vi har tatt rekkevidden fra brukeren og generert et tilfeldig tall innenfor dette området (begge inkludert). 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 rand () og srand () funksjon. Det er ingen garantier for kvaliteten på tilfeldige tall generert av randfunksjonen, men det er bra nok til uformell bruk.

Mus Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Bruk av mus eller tastatur i feil stilling for overdreven bruk kan føre til mange helseproblemer, inkludert belastning, karpaltunnelsyndrom og mer. I ...
Mus Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
De siste årene har datamaskiner og operativsystemer utviklet seg sterkt. Det var en tid da brukere måtte bruke kommandoer for å navigere gjennom filad...
Mus Kontroller og administrer musebevegelser mellom flere skjermer i Windows 10
Kontroller og administrer musebevegelser mellom flere skjermer i Windows 10
Dual Display Mouse Manager lar deg kontrollere og konfigurere musebevegelse mellom flere skjermer, ved å bremse bevegelsene nær grensen. Windows 10/8,...