Читайте также: |
|
Для генерации псевдослучайных чисел в языке программирования С++ используют функцию rand () стандартной библиотеки stdlib. h. Эта функция генерирует псевдослучайное целое число в интервале значений от 0 до RAND_MAX. Значение RAND_MAX является системной константой, которая варьируется в зависимости от реализации языка, но в большинстве случаев составляет 32767.
Если в программе нужно использовать случайные числа в другом диапазоне, то необходимо использовать оператор определения остатка от целочисленного деления. Например, для генерации чисел в диапазоне от а до с необходимо использовать оператор:
int k = a + rand() % (c – a);
Генерация псевдослучайных чисел производится с использованием некоторого базового числа при первом вызове функции rand (). Это базовое число по умолчанию равно 1. Таким образом, при всех запусках программы функция rand () будет порождать одну и ту же последовательность псевдослучайных чисел. Для устранения этого недостатка необходимо при каждом запуске программы устанавливать новое значение базового числа для генерации последовательности с помощью функции srand (), описанной в той же библиотеке.
void srand (unsigned int seed);
Она устанавливает базовое число равным значению параметра seed, с которым была вызвана. И последовательность получаемых псевдослучайных чисел будет другая.
В качестве параметра функции srand () необходимо использовать значение, зависящее от времени запуска программы. Его можно определить с помощью функции time (NULL), описание которой приведено в стандартной библиотеке time.h.
Пример.
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
void main()
{cout << "10 random numbers (1..100): " << endl;
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
cout << rand() % 100 + 1 << " ";
getch();
}
Дата добавления: 2015-07-11; просмотров: 121 | Нарушение авторских прав