Функция rand () на языке C

Rand Function C Language



На языке C ряд() функция используется для Генератор псевдо-чисел (ГПСЧ) . Случайные числа, генерируемые функцией rand (), на самом деле не случайны. Это последовательность, которая периодически повторяется, но период настолько велик, что мы можем игнорировать ее. В ряд() функция работает, запоминая начальное значение, которое используется для вычисления следующего случайного числа и следующего нового начального числа. В этой статье мы собираемся подробно обсудить, как можно сгенерировать случайные числа с помощью ряд() функция. Итак, приступим!

Заголовочный файл:

stdlib.h







Синтаксис:

int rand (пусто)



Возвращаемые значения:

Эта функция возвращает следующее псевдослучайное число в серии. Значение диапазона числового ряда находится между 0 и RAND_MAX. RAND_MAX - это макрос, определенный в stdlib.h заголовочный файл, значение которого является максимальным значением, которое может вернуть функция rand (). Значение RAND_MAX больше, но не меньше 32767, в зависимости от библиотек C.



//Example1.c

#включают
#включают

intглавный()
{

intя;

printf ('10 случайных чисел => п');

для(язнак равно0;я<10;я++)
{
printf ('% d', ряд ());
}

printf (' п');
возвращение 0;
}


В Example1.c мы вызываем функцию rand () на каждой итерации цикла for и печатаем возвращаемое значение функции. Последовательность значений функции rand () остается неизменной каждый раз, когда мы запускаем программу. По умолчанию семя функции rand установлено на 1.





Мы можем установить семя для функции rand, используя srand () функция. Посевной материал можно установить только один раз и перед первым разом. ряд() вызов функции.

srand () функция:

Заголовочный файл:

stdlib.h



Синтаксис:

int srand (беззнаковое целое семя)

Аргументы:

Эта функция принимает 1 аргумент

семя: Целочисленное значение, используемое в качестве начального числа для новой серии псевдослучайных чисел.

Возвращаемые значения:

Никто

//Example2.c

#включают
#включают
#включают

intглавный()
{

intя;

srand ( время (0));

printf ('10 случайных чисел => п');

для(язнак равно0;я<10;я++)
{
printf ('% d', ряд ());
}

printf (' п');
возвращение 0;
}


В Example2.c мы использовали функцию srand (), чтобы установить начальное семя последовательности случайных чисел, сгенерированной функцией rand (). Каждый раз, когда программа запускается, генерируется другая последовательность. В srand () функция time (0) (объявленная в time.h заголовочный файл) используется в качестве начального числа. Эта функция time (0) возвращает количество секунд, прошедших с эпохи (00:00:00, 1 января 1970 г.). Это может привести к тому же результату, если вы запустите программу за одну секунду.

//Example3.c

#включают
#включают
#включают

intглавный()
{

intя;

srand ( время (0));

printf ('10 случайных чисел от 1 до 10 => п');

для(язнак равно0;я<10;я++)
{
printf ('% d',( ряд () %10) + 1);
}

printf (' п');
возвращение 0;
}


В Example3.c мы видели, как могут быть сгенерированы случайные числа от 1 до 10.

//Example4.c

#включают
#включают
#включают

intглавный()
{

intя,Максимум,мин;

printf ('Введите минимальное значение =>');
сканф ('% d', &мин);
printf ('Введите максимальное значение =>');
сканф ('% d', &Максимум);

если(мин>Максимум)
{
printf ('Минимальное значение больше максимального значения п');
возвращение 0;
}

srand ( время (0));


printf ('10 случайных чисел от% d до% d => п',мин,Максимум);

для(язнак равно0;я<10;я++)
{
printf ('% d',( ряд () % (Максимум-мин+1)) +мин);
}

printf (' п');
возвращение 0;
}


В Example4.c мы взяли диапазон от пользователя и сгенерировали случайное число в этом диапазоне. Формула: rand ()% (макс - мин +1)) + мин

//Example5.c

#включают
#включают
#включают

intглавный()
{

intя;

srand ( время (0));

printf ('10 случайных чисел от 0,0 до 1,0 => п');

для(язнак равно0;я<10;я++)
{
printf ('% f',((плавать) ряд () /RAND_MAX));
}

printf (' п');
возвращение 0;
}


В Example5.c мы увидели, как мы можем генерировать случайные числа от 0,0 до 1,0. Формула следующая: (с плавающей точкой) rand () / RAND_MAX)

//Example6.c

#включают
#включают
#включают

intглавный()
{

intя;
плаватьМаксимум,мин;

printf ('Введите минимальное значение =>');
сканф ('% f', &мин);
printf ('Введите максимальное значение =>');
сканф ('% f', &Максимум);

если(мин>Максимум)
{
printf ('Минимальное значение больше максимального значения п');
возвращение 0;
}

srand ( время (0));

printf ('10 случайных чисел от% f до% f => п',мин,Максимум);

для(язнак равно0;я<10;я++)
{
printf ('% f',мин+ ((плавать) ряд () /(RAND_MAX/(Максимум-мин))));
}

printf (' п');
возвращение 0;
}


В Example6.c мы взяли диапазон от пользователя и сгенерировали случайное число в этом диапазоне (оба включительно). Формула: мин + ((число с плавающей запятой) rand () / (RAND_MAX / (макс - мин)))

Заключение:

В этой статье мы узнали, как можно сгенерировать случайные числа с помощью ряд() а также srand () функция. Нет никаких гарантий относительно качества случайных чисел, генерируемых функцией rand, но этого достаточно для случайного использования.