Программирование на C

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

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

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

stdlib.час

Синтаксис:

int rand (пусто)

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

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

// Пример1.c
#включать
#включать
int main ()

int i;
printf ("10 случайных чисел => \ n");
для (i = 0; i<10;i++)

printf ("% d", rand ());

printf ("\ п");
возврат 0;


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

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

srand () функция:

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

stdlib.час

Синтаксис:

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

Аргументы:

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

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

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

Никто

// Пример2.c
#включать
#включать
#включать
int main ()

int i;
srand (время (0));
printf ("10 случайных чисел => \ n");
для (i = 0; i<10;i++)

printf ("% d", rand ());

printf ("\ п");
возврат 0;


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

// Example3.c
#включать
#включать
#включать
int main ()

int i;
srand (время (0));
printf ("10 случайных чисел от 1 до 10 => \ n");
для (i = 0; i<10;i++)

printf ("% d", (rand ()% 10) + 1);

printf ("\ п");
возврат 0;


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

// Example4.c
#включать
#включать
#включать
int main ()

int i, max, min;
printf ("Введите минимальное значение =>");
scanf ("% d", & min);
printf ("Введите максимальное значение =>");
scanf ("% d", & макс);
если (мин> макс)

printf ("Минимальное значение больше максимального \ n");
возврат 0;

srand (время (0));
printf ("10 случайных чисел от% d до% d => \ n", min, max);
для (i = 0; i<10;i++)

printf ("% d", (rand ()% (макс - мин +1)) + мин);

printf ("\ п");
возврат 0;


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

// Пример5.c
#включать
#включать
#включать
int main ()

int i;
srand (время (0));
printf ("10 случайных чисел от 0.0 и 1.0 => \ n ");
для (i = 0; i<10;i++)

printf ("% f", ((float) rand () / RAND_MAX));

printf ("\ п");
возврат 0;


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

// Пример6.c
#включать
#включать
#включать
int main ()

int i;
поплавок макс, мин;
printf ("Введите минимальное значение =>");
scanf ("% f", & min);
printf ("Введите максимальное значение =>");
scanf ("% f", & max);
если (мин> макс)

printf ("Минимальное значение больше максимального \ n");
возврат 0;

srand (время (0));
printf ("10 случайных чисел от% f до% f => \ n", min, max);
для (i = 0; i<10;i++)

printf ("% f", min + ((float) rand () / (RAND_MAX / (max - min))));

printf ("\ п");
возврат 0;


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

Заключение:

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

Эмуляция щелчков мыши с помощью мыши без щелчка в Windows 10
Использование мыши или клавиатуры в неправильной позе или чрезмерное использование может привести к множеству проблем со здоровьем, включая растяжение...
Добавьте жесты мыши в Windows 10 с помощью этих бесплатных инструментов
В последние годы компьютеры и операционные системы сильно эволюционировали. Было время, когда пользователям приходилось использовать команды для навиг...
Контроль и управление перемещением мыши между несколькими мониторами в Windows 10
Диспетчер мыши с двумя дисплеями позволяет контролировать и настраивать движение мыши между несколькими мониторами, замедляя ее движения возле границы...