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