Въведение в генератора на случайни числа в C ++

Много пъти в нашето програмиране възниква ситуация за генериране на числата на случаен принцип. Например игра с зарове, разпределение на карти на плейъри, приложения за разбъркване на песните и т.н. За да се справим с тези неща, трябва да имаме някои помощни програми. В C ++ имаме две помощни програми, за да постигнем това генериране на произволни числа. Първо ще разгледаме тези функции, ще разберем техните нужди. По-късно ще ги използваме в нашия код, за да постигнем функционалност. Така че нека започнем с функциите и библиотеката, с която е свързана. В тази тема ще научим за генератора на случайни числа в C ++.

Как да генерираме произволно число?

За да постигне генерирането на произволни числа, C ++ предоставя помощните програми. Всички знаем, че повечето от вградените функции са включени в заглавния файл на C ++. Един такъв заглавен файл е stdlib.h. Това е стандартна библиотека с много вградени функции като EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL и др. Използвайки тези функции, лесно можем да получим необходимото решение. Не е нужно да пишем продължителна логика, за да излезем. Вместо това можем просто да извикаме една от тези вградени функции според нашите нужди. По същия начин, за да постигнем генериране на произволни числа, имаме две вградени функции. Те са рандомизирани и рандирани. Използвайки и двете в комбинация, можем да постигнем желания от нас резултат.

Нека видим какви са всъщност тези функции.

  • randomize () - Тази функция е отговорна за генерирането на произволно число всеки път, когато стартирате програмата. Резултатът ще бъде уникален при всяко изпълнение на кода. Този уникален изход ни кара да разчитаме повече на тази функция. Например, първият път, когато стартирате кода, той ще генерира резултата като 75, 23, 56, 24, 5, 21, 76, 32, 20 и 37. Следващият път ще генерира изхода като: 5, 64, 51, 78, 94, 53, 41, 19, 96 и 52. Ще видим как ще бъде изходът с и без да използваме тази функция, като напишем код в следващия раздел.
  • rand () - За да генерираме числата от 0 до RAND_MAX-1, ще използваме тази функция. Тук RAND_MAX означава максималния възможен диапазон на числото. Да речем, че трябва да генерираме произволни числа в диапазона, 0 до 99, тогава стойността на RAND_MAX ще бъде 100. Въз основа на необходимостта от приложението, което искаме да изградим, се избира стойността на RAND_MAX. Например, ако това е игра с зарове, тогава RAND_MAX ще бъде 6. Ако е игра с карти, тогава RAND_MAX ще бъде 52 и т.н.

Само имайте предвид, че и двете функции са декларирани в стандартната библиотека stdlib.h. Така че не забравяйте да включите този заглавен файл във вашия код. Сега нека видим как можем да напишем обикновена програма за генериране на произволни числа.

Пример със стъпки

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

Нека да напишем програмата стъпка по стъпка, за да добием повече представа за работещите.

  • Първата стъпка ще бъде да се включат двата файла заглавия, необходими за програмата. Първият, ако h включва функциите за вход и изход. Това е заглавният файл на потока вход-изход. Вторият и важен заглавен файл е stdlib.h. Както беше обсъдено по-рано, тази стандартна библиотека съдържа двете функции, рандиране и рандомизиране. Затова включете и двете в началото на кода.

#include
#include
using namespace std;

  • След като сме включили заглавните файлове, следващата стъпка е да напишем основната функция за изпълнение на кода. За да дефинирате основната функция в следващата част.

int main( )
(
)

  • Декларирайте число, за да задържите и отпечатате стойността на случайното число. Типът данни ще бъде от типа int и ще даде всяко име.

int number;

  • Нуждаем се от брояч на цикъла, за да увеличим стойностите в цикъла. Затова декларирайте индекса i, от типа int. Максималната стойност на инкремент ще определим за цикъл .

int i;

  • Сега ще напишем цикъл за цикъл, за отпечатване на стойностите на произволно генерираното число. За целите на простотата, ние отпечатваме 10 номера. Така че максималният брой инкременти ще бъде 10.

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

  • Вътре за цикъл ще напишем функцията rand. Кодът по-долу ни казва, че произволно генерирано произволно число ще бъде разделено на 100, а останалата част е взета. Това означава, че отпечатаните числа ще бъдат от 0 до 99 в обхвата. Ако искате по-високи диапазони, номерът на модула ще бъде различен. Това е вместо 100, които можем да поставим, 150, 200, 100 и т.н.

number = rand() % 100;

  • В последната стъпка ще отпечатаме генерираното число, използвайки cout.

cout << number << "\t";

  • Изходът на кода е както е показано по-долу. Моля, имайте предвид, че може да получите различен изход, тъй като неговият генератор на произволни числа

  • Проблемът с горния код е всеки път, когато стартираме кода ще получи един и същ набор от продукция. За да избегнем, че трябва да използваме srand () Тук визираме времето в този случай и генерираме новите стойности всеки път, когато стартираме програмата.

Нека разгледаме пълния код с функцията srand.

#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- ра итерация

Заключение - Генератор на случайни числа в C ++

В тази статия научихме какво е генератор на произволни числа, нужди от генератор на произволни числа, вградени функции на C ++ за постигане на това, със и без използване на функцията за рандомизиране, значение на стандартната библиотека stdlib.h, стъпка по стъпка инструкции да напишете кода и най-накрая да сравните резултатите от два различни подхода.

Препоръчителни статии

Това е ръководство за генератор на случайни числа в C ++. Тук обсъждаме Как да генерираме произволно число заедно с примери и стъпки. Можете също да разгледате следната статия, за да научите повече -

  1. Достъп до модификатори в C ++
  2. Генератор на случайни числа в Python
  3. Генератор на случайни числа в R
  4. Променливи в C ++
  5. Достъп Модификатори в PHP
  6. Генератор на случайни числа в C #
  7. Топ 11 функции и предимства на C ++
  8. Примери за вградени функции на Python