rand () Funktion i C -språk

Rand Function C Language



På C -språket, rad() funktion används för Pseudo Number Generator (PRNG) . Slumpmässiga tal 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 rad() funktionen fungerar genom att komma ihåg ett frövärde som används för att beräkna nästa slumpmässiga tal och nästa nya utsäde. I den här artikeln kommer vi att diskutera i detalj hur slumpmässiga tal kan genereras med hjälp av rad() fungera. Så, låt oss komma igång!

Rubrikfil:

stdlib.h







Syntax:

int rand (ogiltig)



Returvärden:

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



//Exempel1.c

#omfatta
#omfatta

inthuvud()
{

inti;

printf ('10 slumpmässiga nummer => n');

för(i=0;i<10;i++)
{
printf ('%d', rad ());
}

printf (' n');
lämna tillbaka 0;
}


I Exempel1.c kallar vi funktionen rand () i varje iteration av för loop och skriver ut funktionens returvärde. Värdesekvensen för rand () -funktionen är densamma varje gång vi kör programmet. Som standard är fröet för randfunktionen inställt på 1.





Vi kan ställa in fröet för randfunktionen med srand () fungera. Fröet kan bara sättas en gång och före första gången rad() funktionssamtal.

srand () funktion:

Rubrikfil:

stdlib.h



Syntax:

int srand (osignerat int seed)

Argument:

Denna funktion tar 1 argument

utsäde: Ett heltal som används som frö för en ny serie pseudo-slumpmässiga tal.

Returvärden:

Ingen

//Exempel2.c

#omfatta
#omfatta
#omfatta

inthuvud()
{

inti;

srand ( tid (0));

printf ('10 slumpmässiga nummer => n');

för(i=0;i<10;i++)
{
printf ('%d', rad ());
}

printf (' n');
lämna tillbaka 0;
}


I Exempel2.c har vi använt funktionen srand () för att ställa in det ursprungliga utsäde för slumpmässiga talföljden som genereras av funktionen rand (). Varje gång programmet körs genereras en annan sekvens. I srand (), funktionen tid (0) (deklarerad i tid. h header file) används som frö. Denna tid (0) -funktion returnerar antalet förflutna sekunder sedan epoken (00:00:00, 1 januari 1970). Detta kan fortfarande producera samma sekvenser om du kör programmet i samma sekund.

//Exempel3.c

#omfatta
#omfatta
#omfatta

inthuvud()
{

inti;

srand ( tid (0));

printf ('10 Slumpmässiga tal mellan 1 och 10 => n');

för(i=0;i<10;i++)
{
printf ('%d',( rad () %10) + 1);
}

printf (' n');
lämna tillbaka 0;
}


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

//Exempel4.c

#omfatta
#omfatta
#omfatta

inthuvud()
{

inti,max,min;

printf ('Ange minsta värde =>');
scanf ('%d', &min);
printf ('Ange maxvärde =>');
scanf ('%d', &max);

om(min>max)
{
printf ('Minsta värde är större än maxvärdet n');
lämna tillbaka 0;
}

srand ( tid (0));


printf ('10 Slumpmässiga tal mellan %d och %d => n',min,max);

för(i=0;i<10;i++)
{
printf ('%d',( rad () % (max-min+1)) +min);
}

printf (' n');
lämna tillbaka 0;
}


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

//Exempel5.c

#omfatta
#omfatta
#omfatta

inthuvud()
{

inti;

srand ( tid (0));

printf ('10 Slumpmässiga tal mellan 0,0 och 1,0 => n');

för(i=0;i<10;i++)
{
printf ('%f',((flyta) rad () /RAND_MAX));
}

printf (' n');
lämna tillbaka 0;
}


I exempel5.c har vi sett hur vi kan generera slumpmässiga tal mellan float 0.0 och 1.0 Formeln är: (float) rand () /RAND_MAX)

//Exempel6.c

#omfatta
#omfatta
#omfatta

inthuvud()
{

inti;
flytamax,min;

printf ('Ange minsta värde =>');
scanf ('%f', &min);
printf ('Ange maxvärde =>');
scanf ('%f', &max);

om(min>max)
{
printf ('Minsta värde är större än maxvärdet n');
lämna tillbaka 0;
}

srand ( tid (0));

printf ('10 Slumpmässiga tal mellan %f och %f => n',min,max);

för(i=0;i<10;i++)
{
printf ('%f',min+ ((flyta) rad () /(RAND_MAX/(max-min))));
}

printf (' n');
lämna tillbaka 0;
}


I exempel6.c har vi 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 slumpmässiga tal kan genereras med hjälp av rad() och srand () fungera. Det finns inga garantier om kvaliteten på slumpmässiga tal som genereras av randfunktionen, men det är tillräckligt bra för tillfällig användning.