Увод о генератору случајних бројева у Ц ++

Много пута се у нашем програмирању појављује ситуација да се генеришу бројеви насумично. На примјер, игра с коцкицама, дистрибуција картице играчима, апликације за измјену пјесама итд. Да бисмо управљали тим стварима, требали бисмо имати неке услужне програме. У Ц ++ имамо две алате за постизање ове генерације случајних бројева. Прво ћемо погледати те функције, разумети њихове потребе. Касније ћемо их користити у нашем коду да бисмо постигли функционалност. Па започнимо с функцијама и библиотеком с којом је повезана. У овој теми ћемо сазнати о генератору случајних бројева у Ц ++.

Како створити случајни број?

Да би се постигла генерација случајних бројева, Ц ++ пружа услужне програме. Сви знамо да је већина уграђених функција укључена у заглављу датотеке Ц ++. Једна таква датотека заглавља је стдлиб.х. То је стандардна библиотека која има много уграђених функција попут ЕКСИТ_ФАИЛУРЕ, ЕКСИТ_СУЦЦЕСС, РАНД_МАКС, НУЛЛ, итд. Помоћу ових функција лако можемо добити тражено решење. Не треба да пишемо дуготрајну логику да бисмо изашли ван. Уместо тога, можемо једноставно назвати једну од тих уграђених функција према нашим потребама. На исти начин, за постизање генерације случајних бројева, имамо две уграђене функције. Они су насумични и рандирани. Употребом обоје у комбинацији можемо добити жељени резултат.

Да видимо које су те функције у основи.

  • рандомизе () - Ова функција је одговорна за генерисање случајних бројева сваки пут када покренете програм. Резултат ће бити јединствен сваки пут када се изврши код. Овај јединствени излаз чини да се више ослањамо на ову функцију. На пример, први пут када покренете код, он ће генерисати излаз као 75, 23, 56, 24, 5, 21, 76, 32, 20 и 37. Следећи пут ће генерисати излаз као: 5, 64, 51, 78, 94, 53, 41, 19, 96 и 52. Видећемо како ће излаз бити са и без употребе ове функције, тако што ћемо у следећем одељку написати код.
  • ранд () - За генерисање бројева од 0 до РАНД_МАКС-1 користићемо ову функцију. Овде РАНД_МАКС означава максимални могући распон броја. Рецимо да требамо генерирати случајне бројеве у распону, 0 до 99, тада ће вриједност РАНД_МАКС бити 100. На основу потребе апликације коју желимо изградити, одабира се вриједност РАНД_МАКС. На пример, ако је игра са коцкицама, тада ће РАНД_МАКС бити 6. Ако је карташка игра, тада ће РАНД_МАКС бити 52 итд.

Имајте на уму да су обе функције декларисане у стандардној библиотеци стдлиб.х. Зато не заборавите да у своју шифру ставите ову заглавље. Сада да видимо како можемо написати једноставан програм за генерирање случајних бројева.

Пример са корацима

Сада када смо добили идеју о томе како функционише функција генератора случајних бројева, напишемо основни програм који ће генерирати случајни број и исписати излаз.

Да напишемо програм корак по корак, да добијемо бољи увид у рад.

  • Први корак биће укључивање две датотеке заглавља потребне за програм. Први ако х укључује функције улаза и излаза. Ово је датотека заглавља улаз-излаз. Друга и важна датотека заглавља је стдлиб.х. Као што смо раније расправљали, ова стандардна библиотека садржи две функције, рандирање и рандомизирање. Дакле, укључите их оба на почетку кода.

#include
#include
using namespace std;

  • Сада када смо укључили заглавне датотеке, следећи корак је писање главне функције за извршење кода. Да бисте у наредном делу дефинисали главну функцију.

int main( )
(
)

  • Најавите број да бисте задржали и одштампали вредност случајног броја. Тип података ће бити типа инт и дати било које име.

int number;

  • Потребан нам је бројач петље за повећање вредности у петљи. Зато изјавите индекс и, типа инт. Максимална вредност прираштаја коју ћемо дефинисати за петљу .

int i;

  • Сада ћемо написати петљу за штампање вредности насумично генерисаног броја. Ради једноставности, исписујемо 10 бројева. Тако ће максимални број прираштаја бити 10.

for(i = 1; i <= 10; i++)
(
)

  • Унутра за петљу уписаћемо функцију ранд. Доље код нам говори да ће било који генерисан случајни број бити подељен са 100, а остатак је узет. То значи да ће бројеви који се штампају бити у опсегу од 0 до 99. Ако желите већи опсег, број модула ће бити другачији. То је уместо 100 које можемо да поставимо, 150, 200, 100, итд.

number = rand() % 100;

  • У последњем кораку ћемо исписати генерисани број, користећи цоут.

cout << number << "\t";

  • Излаз кода је доле наведен. Имајте на уму да можете добити различит излаз, од његовог случајног бројача.

  • Проблем са горњим кодом је сваки пут када покренемо код добије исти излаз. Да бисмо избегли да морамо користити сранд () Овде се односи време на тој инстанци и генерише нове вредности сваки пут када покренемо програм.

Погледајмо комплетан код са функцијом сранд.

#include
#include
using namespace std;
int main( )
(
int number;
int i;
srand(time(0));
for(i = 1; i <= 10; i++)
(
number = rand() % 100;
cout << number << "\t";
)
)

Два извршна излаза кода:

Прво извршење:

Друго извршење:

  • Испод је код за генерисање 5 случајних бројева унутар 1000. Промените вредност броја и видите излаз који се генерише у сваком тренутку. Упоредите разлике код коришћења ненаписаних и без употребе.

#include
#include
#include
int main ()
(
int i, number;
time_t nTime;
number = 5;
srand((unsigned) time(&nTime));
printf("Random numbers are: \n");
for( i = 0 ; i < number ; i++ )
(
printf("%d\n", rand() % 1000);
)
return(0);
)

Излаз:

За прву итерацију

За другу итерацију

Закључак - Генератор случајних бројева у Ц ++

У овом чланку смо научили шта је генератор случајних бројева, потребе генератора случајних бројева, уграђене функције Ц ++ да би се то постигло, са и без коришћења функције рандомизирања, значај стандардне библиотеке стдлиб.х, корак по корак упутства написати код и на крају упоредити резултате два различита приступа.

Препоручени чланци

Ово је водич за Генератор случајних бројева у Ц ++. Овде смо расправљали о начину генерисања случајног броја заједно са примерима и корацима. Такође можете погледати следећи чланак да бисте сазнали више -

  1. Приступите модификаторима на Ц ++
  2. Генератор случајних бројева у Питхон-у
  3. Генератор случајних бројева у Р
  4. Варијабле у Ц ++
  5. Приступите модификаторима на ПХП-у
  6. Генератор случајних бројева у Ц #
  7. Топ 11 функција и предности Ц ++
  8. Примери уграђених функција Питхон-а

Категорија: