Ц Програмирање

ранд () Функција у језику Ц

ранд () Функција у језику Ц
На језику Ц, ранд () функција се користи за Генератор псеудо бројева (ПРНГ). Случајни бројеви генерисани функцијом ранд () нису заиста случајни. То је низ који се периодично понавља, али период је толико велик да га можемо занемарити. Тхе ранд () функција ради памтећи вредност семена која се користи за израчунавање следећег случајног броја и следећег новог семена. У овом чланку ћемо детаљно разговарати о томе како се случајни бројеви могу генерисати помоћу ранд () функцију. Па, кренимо!

Датотека заглавља:

стдлиб.х

Синтакса:

инт ранд (воид)

Повратне вредности:

Ова функција враћа следећи псеудо-случајни број у низу. Вредност опсега бројевне серије је између 0 и РАНД_МАКС. РАНД_МАКС је макро дефинисан у стдлиб.х датотека заглавља, чија је вредност максимална вредност, која се може вратити функцијом ранд (). Вредност РАНД_МАКС је већа, али не мања од 32767, у зависности од Ц библиотека.

// Пример1.ц
#инцлуде
#инцлуде
инт маин ()

инт и;
принтф ("10 случајних бројева => \ н");
за (и = 0; и<10;i++)

принтф ("% д", ранд ());

принтф ("\ н");
ретурн 0;


У Примеру1.ц, позивамо функцију ранд () у свакој итерацији фор петље и исписујемо повратну вредност функције. Редослед вредности функције ранд () је исти сваки пут када покренемо програм. Подразумевано је почетна вредност функције ранд постављена на 1.

Семе можемо да поставимо за функцију ранд помоћу сранд () функцију. Семе се може поставити само једном и пре првог ранд () позив функције.

сранд () функција:

Датотека заглавља:

стдлиб.х

Синтакса:

инт сранд (непотписано инт семе)

Аргументи:

Ова функција узима 1 аргумент

семе: Целобројна вредност која се користи као почетно слово за нову серију псеудо-случајних бројева.

Повратне вредности:

Ниједан

// Пример2.ц
#инцлуде
#инцлуде
#инцлуде
инт маин ()

инт и;
сранд (време (0));
принтф ("10 случајних бројева => \ н");
за (и = 0; и<10;i++)

принтф ("% д", ранд ());

принтф ("\ н");
ретурн 0;


У Примеру2.ц, користили смо функцију сранд () да поставимо почетно почетно поље секвенце случајних бројева генерисаних функцијом ранд (). Сваки пут када се програм покрене, генерише се другачији редослед. У сранд (), функција функције тиме (0) (декларисана у време.х датотека заглавља) користи се као семе. Ова функција (0) враћа број секунди протеклих од епохе (00:00:00, 1. јануара 1970). Ово и даље може произвести исте секвенце ако покренете програм у истој секунди.

// Пример3.ц
#инцлуде
#инцлуде
#инцлуде
инт маин ()

инт и;
сранд (време (0));
принтф ("10 насумичних бројева између 1 и 10 => \ н");
за (и = 0; и<10;i++)

принтф ("% д", (ранд ()% 10) + 1);

принтф ("\ н");
ретурн 0;


У Примеру3.ц видели смо како се случајни бројеви могу генерисати између 1 и 10.

// Пример4.ц
#инцлуде
#инцлуде
#инцлуде
инт маин ()

инт и, мак, мин;
принтф ("Унесите минималну вредност =>");
сцанф ("% д", & мин);
принтф ("Унесите максималну вредност =>");
сцанф ("% д", & мак);
ако (мин> мак)

принтф ("Минимална вредност је већа од максималне \ н");
ретурн 0;

сранд (време (0));
принтф ("10 насумичних бројева између% д и% д => \ н", мин, мак);
за (и = 0; и<10;i++)

принтф ("% д", (ранд ()% (мак - мин +1)) + мин);

принтф ("\ н");
ретурн 0;


У примеру4.ц узели смо опсег од корисника и генерисали случајни број унутар овог опсега. Формула је: ранд ()% (мак - мин +1)) + мин

// Пример5.ц
#инцлуде
#инцлуде
#инцлуде
инт маин ()

инт и;
сранд (време (0));
принтф ("10 насумичних бројева између 0.0 и 1.0 => \ н ");
за (и = 0; и<10;i++)

принтф ("% ф", ((плутајући) ранд () / РАНД_МАКС));

принтф ("\ н");
ретурн 0;


У примеру5.ц, видели смо како можемо генерисати случајне бројеве између плутајуће 0.0 и 1.0 Формула је: (флоат) ранд () / РАНД_МАКС)

// Пример6.ц
#инцлуде
#инцлуде
#инцлуде
инт маин ()

инт и;
плутајуће мак, мин;
принтф ("Унесите минималну вредност =>");
сцанф ("% ф", & мин);
принтф ("Унесите максималну вредност =>");
сцанф ("% ф", & мак);
ако (мин> мак)

принтф ("Минимална вредност је већа од максималне \ н");
ретурн 0;

сранд (време (0));
принтф ("10 насумичних бројева између% ф и% ф => \ н", мин, мак);
за (и = 0; и<10;i++)

принтф ("% ф", мин + ((плутајући) ранд () / (РАНД_МАКС / (мак - мин))));

принтф ("\ н");
ретурн 0;


У Примеру6.ц, узели смо опсег од корисника и генерисали случајни број унутар овог опсега (укључујући оба). Формула је: мин + ((плутајући) ранд () / (РАНД_МАКС / (мак - мин)))

Закључак:

У овом чланку смо научили како се случајни бројеви могу генерисати помоћу ранд () и сранд () функцију. Не постоје гаранције за квалитет случајних бројева генерисаних функцијом ранд, али је довољно добар за случајну употребу.

Како инсталирати Леагуе Оф Легендс на Убунту 14.04
Ако сте љубитељ Леагуе оф Легендс, ово је прилика да тестирате Леагуе оф Легендс. Имајте на уму да је ЛОЛ подржан на ПлаиОнЛинук ако сте корисник лину...
Инсталирајте најновију ОпенРА Стратеги Гаме на Убунту Линук
ОпенРА је Либре / Фрее Реал Тиме стратешки механизам који ствара ране Вествоод игре попут класичне Цомманд & Цонкуер: Ред Алерт. Дистрибуирани модови ...
Инсталирајте најновији Долпхин Емулатор за Гамецубе & Вии на Линук
Долпхин Емулатор вам омогућава да играте изабране игре Гамецубе и Вии на Линук Персонал Цомпутерс (ПЦ). Долпхин Емулатор је слободно доступан и емула...