C Programmering

rand () Funktion i C-språk

rand () Funktion i C-språk
På C-språket är rand() funktionen används för Pseudonummergenerator (PRNG). Slumpmässiga siffror som genereras av funktionen rand () är inte riktigt slumpmässiga. Det är en sekvens som upprepas regelbundet, men perioden är så stor att vi kan ignorera den. De rand() funktionen fungerar genom att komma ihåg ett frövärde som används för att beräkna nästa slumpmässiga nummer och nästa nya frö. I den här artikeln ska vi diskutera i detalj hur slumptal kan genereras med hjälp av rand() fungera. Så, låt oss komma igång!

Rubrikfil:

stdlib.h

Syntax:

int rand (ogiltig)

Returvärden:

Denna funktion returnerar nästa pseudoslumpnummer i serien. Räckvärdet för nummerserien är mellan 0 och RAND_MAX. RAND_MAX är ett makro definierat i stdlib.h header-fil, vars värde är det maximala värdet, som kan returneras med rand () -funktionen. Värdet på RAND_MAX är större men inte mindre än 32767 beroende på C-biblioteken.

// Exempel1.c
#omfatta
#omfatta
int main ()

int i;
printf ("10 slumpmässiga siffror => \ n");
för (i = 0; i<10;i++)

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

printf ("\ n");
returnera 0;


I exempel 1.c, vi kallar rand () -funktionen i varje iteration av for loop och skriver ut returvärdet för funktionen. Värdesekvensen för funktionen rand () är densamma varje gång vi kör programmet. Som standard är fröet för randfunktionen satt till 1.

Vi kan ställa in fröet för randfunktionen med hjälp av srand () fungera. Fröet kan bara ställas in en gång och före första gången rand() funktionssamtal.

srand () -funktion:

Rubrikfil:

stdlib.h

Syntax:

int srand (osignerad int seed)

Argument:

Denna funktion tar ett argument

utsäde: Ett heltal som används som ett frö för en ny serie av pseudoslumpnummer.

Returvärden:

Ingen

// Exempel2.c
#omfatta
#omfatta
#omfatta
int main ()

int i;
srand (tid (0));
printf ("10 slumpmässiga siffror => \ n");
för (i = 0; i<10;i++)

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

printf ("\ n");
returnera 0;


I exempel 2.c, vi har använt srand () -funktionen för att ställa in det ursprungliga fröet för den slumpmässiga nummersekvensen som genereras av rand () -funktionen. Varje gång programmet körs genereras en annan sekvens. I srand (), time (0) -funktion (deklareras i tid.h header-fil) används som ett frö. Denna gång (0) -funktionen returnerar antalet sekunder som har gått sedan epoken (00:00:00, 1 januari 1970). Detta kan fortfarande producera samma sekvenser om du kör programmet på samma sekund.

// Exempel3.c
#omfatta
#omfatta
#omfatta
int main ()

int i;
srand (tid (0));
printf ("10 slumpmässiga siffror mellan 1 och 10 => \ n");
för (i = 0; i<10;i++)

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

printf ("\ n");
returnera 0;


I exempel 3.c vi har sett hur slumpmässiga tal kan genereras mellan 1 och 10.

// Exempel4.c
#omfatta
#omfatta
#omfatta
int main ()

int i, max, min;
printf ("Ange minvärde =>");
scanf ("% d", & min);
printf ("Ange maxvärde =>");
scanf ("% d", & max);
om (min> max)

printf ("Minvärde är större än maxvärde \ n");
returnera 0;

srand (tid (0));
printf ("10 slumpmässiga siffror mellan% d och% d => \ n", min, max);
för (i = 0; i<10;i++)

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

printf ("\ n");
returnera 0;


I exempel 4.c vi har tagit intervallet från användaren och genererat ett slumpmässigt tal inom detta intervall. Formeln är: rand ()% (max - min +1)) + min

// Exempel 5.c
#omfatta
#omfatta
#omfatta
int main ()

int i;
srand (tid (0));
printf ("10 slumpmässiga siffror mellan 0.0 och 1.0 => \ n ");
för (i = 0; i<10;i++)

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

printf ("\ n");
returnera 0;


I exempel 5.c, vi har sett hur vi kan generera slumptal mellan float 0.0 och 1.0 Formeln är: (float) rand () / RAND_MAX)

// Exempel 6.c
#omfatta
#omfatta
#omfatta
int main ()

int i;
flottör max, min;
printf ("Ange minvärde =>");
scanf ("% f", & min);
printf ("Ange maxvärde =>");
scanf ("% f", & max);
om (min> max)

printf ("Minvärde är större än maxvärde \ n");
returnera 0;

srand (tid (0));
printf ("10 slumpmässiga siffror mellan% f och% f => \ n", min, max);
för (i = 0; i<10;i++)

printf ("% f", min + ((float) rand () / (RAND_MAX / (max - min))));

printf ("\ n");
returnera 0;


I exempel 6.c, vi har tagit intervallet från användaren och genererat ett slumpmässigt tal inom detta intervall (båda inklusive). Formeln är: min + ((float) rand () / (RAND_MAX / (max - min)))

Slutsats:

I den här artikeln har vi lärt oss hur slumptal kan genereras med hjälp av rand() och srand () fungera. Det finns inga garantier för kvaliteten på de slumpmässiga siffrorna som genereras av randfunktionen, men det är tillräckligt bra för avslappnad användning.

Gratis och öppen källkodsmotorer för utveckling av Linux-spel
Den här artikeln kommer att täcka en lista över gratis motorer med öppen källkod som kan användas för att utveckla 2D- och 3D-spel på Linux. Det finns...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider är det tolfte tillskottet till Tomb Raider-serien - en action-äventyrsspelfranchise skapad av Eidos Montreal. Spelet mottogs...
Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...