rand () Funktsioon C keeles

Rand Function C Language



C keeles on rida () funktsiooni kasutatakse Pseudoarvude generaator (PRNG) . Funktsiooni rand () poolt genereeritud juhuslikud numbrid ei ole tõeliselt juhuslikud. See on jada, mis kordub perioodiliselt, kuid periood on nii suur, et võime seda ignoreerida. The rida () funktsioon toimib, mäletades seemne väärtust, mida kasutatakse järgmise juhusliku arvu ja järgmise uue seemne arvutamiseks. Selles artiklis käsitleme üksikasjalikult, kuidas juhuslikke numbreid saab genereerida rida () funktsiooni. Niisiis, alustame!

Päisefail:

stdlib.h







Süntaks:

int rand (tühine)



Tagasiväärtused:

See funktsioon tagastab seeria järgmise pseudo-juhusliku numbri. Numbriseeria vahemiku väärtus on vahemikus 0 kuni RAND_MAX. RAND_MAX on makro, mis on määratletud asukohas stdlib.h päisefail, mille väärtus on maksimaalne väärtus, mille saab tagastada funktsiooni rand () abil. Sõltuvalt C teekidest on RAND_MAX väärtus suurem, kuid mitte väiksem kui 32767.



//Näide1.c

#kaasake
#kaasake

intpeamine()
{

inti;

printf ('10 Juhuslikud numbrid => n');

eest(i=0;i<10;i++)
{
printf ('%d', rida ());
}

printf (' n');
tagasi 0;
}


Näites 1.c kutsume funktsiooni kord () funktsiooni igas tsükli iteratsioonis ja prindime funktsiooni tagasiväärtuse. Funktsiooni rand () väärtuste järjestus on iga kord, kui programmi käivitame, sama. Vaikimisi on funktsiooni rand seeme seatud väärtusele 1.





Saame määrata funktsiooni rand seemne, kasutades srand () funktsiooni. Külvi saab külvata ainult üks kord ja enne esimest korda rida () funktsiooni kõne.

funktsioon srand ():

Päisefail:

stdlib.h



Süntaks:

int srand (allkirjastamata int seeme)

Argumendid:

See funktsioon võtab 1 argumendi

seeme: Täisarv, mida kasutatakse uue pseudo-juhuslike arvude seeria seemneks.

Tagasiväärtused:

Puudub

//Näide2.c

#kaasake
#kaasake
#kaasake

intpeamine()
{

inti;

srand ( aega (0));

printf ('10 Juhuslikud numbrid => n');

eest(i=0;i<10;i++)
{
printf ('%d', rida ());
}

printf (' n');
tagasi 0;
}


Näites2.c oleme kasutanud funktsiooni srand (), et määrata rand () funktsiooni poolt genereeritud juhuslike numbrite jada algseeme. Iga kord, kui programm käivitatakse, luuakse erinev järjestus. Srand (), aja (0) funktsioon (deklareeritud aastal aeg.h päisefaili) kasutatakse seemnena. Selle aja (0) funktsioon tagastab ajastust (00:00:00, 1. jaanuar 1970) möödunud sekundite arvu. See võib siiski toota samu järjestusi, kui käivitate programmi samal sekundil.

//Näide3.c

#kaasake
#kaasake
#kaasake

intpeamine()
{

inti;

srand ( aega (0));

printf ('10 Juhuslikud numbrid vahemikus 1 kuni 10 => n');

eest(i=0;i<10;i++)
{
printf ('%d',( rida () %10) + 1);
}

printf (' n');
tagasi 0;
}


Näites 3.c oleme näinud, kuidas juhuslikke numbreid saab genereerida vahemikus 1 kuni 10.

//Näide4.c

#kaasake
#kaasake
#kaasake

intpeamine()
{

inti,max,min;

printf ('Sisestage minimaalne väärtus =>');
scanf ('%d', &min);
printf ('Sisesta maksimumväärtus =>');
scanf ('%d', &max);

kui(min>max)
{
printf ('Minimaalne väärtus on suurem kui max väärtus n');
tagasi 0;
}

srand ( aega (0));


printf ('10 Juhuslikud numbrid vahemikus %d kuni %d => n',min,max);

eest(i=0;i<10;i++)
{
printf ('%d',( rida () % (max-min+1)) +min);
}

printf (' n');
tagasi 0;
}


Näites 4.c oleme kasutajalt selle vahemiku võtnud ja sellesse vahemikku loonud juhusliku arvu. Valem on järgmine: rand ()% (max - min +1)) + min

//Näide5.c

#kaasake
#kaasake
#kaasake

intpeamine()
{

inti;

srand ( aega (0));

printf ('10 Juhuslikud numbrid vahemikus 0,0 kuni 1,0 => n');

eest(i=0;i<10;i++)
{
printf ('%f',((hõljuma) rida () /RAND_MAX));
}

printf (' n');
tagasi 0;
}


Näites 5.c oleme näinud, kuidas saame genereerida juhuslikke numbreid ujuki 0,0 ja 1,0 vahel. Valem on järgmine: (float) rand () /RAND_MAX)

//Näide6.c

#kaasake
#kaasake
#kaasake

intpeamine()
{

inti;
hõljumamax,min;

printf ('Sisestage minimaalne väärtus =>');
scanf ('%f', &min);
printf ('Sisesta maksimumväärtus =>');
scanf ('%f', &max);

kui(min>max)
{
printf ('Minimaalne väärtus on suurem kui max väärtus n');
tagasi 0;
}

srand ( aega (0));

printf ('10 Juhuslikud numbrid vahemikus %f kuni %f => n',min,max);

eest(i=0;i<10;i++)
{
printf ('%f',min+ ((hõljuma) rida () /(RAND_MAX/(max-min))));
}

printf (' n');
tagasi 0;
}


Näites 6.c oleme võtnud kasutajalt vahemiku ja genereerinud selles vahemikus juhusliku arvu (mõlemad kaasa arvatud). Valem on järgmine: min + ((ujuk) rand () /(RAND_MAX /(max - min)))

Järeldus:

Selles artiklis oleme õppinud, kuidas juhuslikke numbreid saab genereerida, kasutades rida () ja srand () funktsiooni. Funktsiooni rand genereeritud juhuslike numbrite kvaliteedi kohta pole garantiisid, kuid see on juhuslikuks kasutamiseks piisavalt hea.