Otsikkotiedosto:
stdlib.h
Syntaksi:
int rand (mitätön)
Palauta arvot:
Tämä toiminto palauttaa sarjan seuraavan näennäissatunnaisluvun. Numerosarjan aluearvo on välillä 0 ja RAND_MAX. RAND_MAX on kohdassa määritelty makro stdlib.h otsikkotiedosto, jonka arvo on suurin arvo, joka voidaan palauttaa rand () -funktiolla. RAND_MAX -arvo on suurempi, mutta vähintään 32767 C -kirjastoista riippuen.
//Esimerkki1.c
#sisältää
#sisältää
inttärkein()
{
inti;
printf ('10 Satunnaisluvut => n'');
varten(i=0;i<10;i++)
{
printf ('%d', rivi ());
}
printf ('' n'');
palata 0;
}
Esimerkissä 1.c kutsumme rand () -funktiota jokaisessa silmukan iteraatiossa ja tulostamme funktion palautusarvon. Rand () -funktion arvojärjestys on sama aina, kun suoritamme ohjelman. Rand -funktion siemen on oletusarvoisesti 1.
Voimme asettaa siemenen rand -toiminnolle käyttämällä srand () toiminto. Siemen voidaan asettaa vain kerran ja ennen ensimmäistä kertaa rivi() funktion kutsu.
srand () -funktio:
Otsikkotiedosto:
stdlib.h
Syntaksi:
int srand (allekirjoittamaton int seed)
Argumentit:
Tämä funktio kestää 1 argumentin
siemenet: Kokonaislukuarvo, jota käytetään siemenenä uudelle näennäissatunnaislukusarjalle.
Palauta arvot:
Ei mitään
//Esimerkki2.c#sisältää
#sisältää
#sisältää
inttärkein()
{
inti;
srand ( aika (0));
printf ('10 Satunnaisluvut => n'');
varten(i=0;i<10;i++)
{
printf ('%d', rivi ());
}
printf ('' n'');
palata 0;
}
Esimerkissä2.c olemme käyttäneet srand () -funktiota rand () -funktion tuottaman satunnaislukusekvenssin alkutiedon asettamiseen. Joka kerta, kun ohjelma suoritetaan, luodaan eri sekvenssi. Srand (), aika (0) -funktio (ilmoitettu aika. h otsikkotiedostoa) käytetään siemenenä. Tämä aika (0) -toiminto palauttaa aikakauden (00:00:00, 1. tammikuuta 1970) kuluneen sekunnin määrän. Tämä voi silti tuottaa samat sekvenssit, jos suoritat ohjelman samalla sekunnilla.
#sisältää
#sisältää
#sisältää
inttärkein()
{
inti;
srand ( aika (0));
printf ('10 Satunnaisluvut välillä 1 ja 10 => n'');
varten(i=0;i<10;i++)
{
printf ('%d',( rivi () %10) + 1);
}
printf ('' n'');
palata 0;
}
Esimerkissä 3.c olemme nähneet kuinka satunnaislukuja voidaan luoda välillä 1 ja 10.
#sisältää
#sisältää
#sisältää
inttärkein()
{
inti,max,min;
printf ('Anna minimiarvo =>');
scanf ('%d', &min);
printf ('Anna enimmäisarvo =>');
scanf ('%d', &max);
jos(min>max)
{
printf ('Min. Arvo on suurempi kuin max. Arvo n'');
palata 0;
}
srand ( aika (0));
printf ('10 Satunnaisluvut välillä %d ja %d => n'',min,max);
varten(i=0;i<10;i++)
{
printf ('%d',( rivi () % (max-min+1)) +min);
}
printf ('' n'');
palata 0;
}
Esimerkissä4.c olemme ottaneet alueen käyttäjältä ja muodostaneet satunnaisluvun tällä alueella. Kaava on: rand ()% (max - min +1)) + min
#sisältää
#sisältää
#sisältää
inttärkein()
{
inti;
srand ( aika (0));
printf ('10 Satunnaislukua välillä 0,0 ja 1,0 => n'');
varten(i=0;i<10;i++)
{
printf ('%f',((kellua) rivi () /RAND_MAX));
}
printf ('' n'');
palata 0;
}
Esimerkissä 5.c olemme nähneet kuinka voimme luoda satunnaislukuja kellukkeen 0,0 ja 1,0 välillä Kaava on: (float) rand () /RAND_MAX)
#sisältää
#sisältää
#sisältää
inttärkein()
{
inti;
kelluamax,min;
printf ('Anna minimiarvo =>');
scanf ('%f', &min);
printf ('Anna enimmäisarvo =>');
scanf ('%f', &max);
jos(min>max)
{
printf ('Min. Arvo on suurempi kuin max. Arvo n'');
palata 0;
}
srand ( aika (0));
printf ('10 Satunnaisluvut välillä %f ja %f => n'',min,max);
varten(i=0;i<10;i++)
{
printf ('%f',min+ ((kellua) rivi () /(RAND_MAX/(max-min))));
}
printf ('' n'');
palata 0;
}
Esimerkissä 6.c olemme ottaneet alueen käyttäjältä ja luoneet satunnaisluvun tällä alueella (molemmat mukaan lukien). Kaava on: min + ((float) rand () /(RAND_MAX /(max - min)))
Johtopäätös:
Tässä artikkelissa olemme oppineet, miten satunnaislukuja voidaan luoda käyttämällä rivi() ja srand () toiminto. Rand -funktion luomien satunnaislukujen laadusta ei ole takeita, mutta se on riittävän hyvä satunnaiseen käyttöön.