Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Работа с псевдослучайными числами



Читайте также:
  1. I. ЛАБОРАТОРНАЯ РАБОТА
  2. I.ПОЛИТИЧЕСКАЯ РАБОТА
  3. II. Основная часть аттестационная отчёта — личная работа врача за последние три года
  4. II. Работа в бумажном виде
  5. II. Работа с раздаточным материалом
  6. II. Работа со сносками
  7. III. Коррекционная работа при дисграфиях «анализа синтеза».

Для генерации псевдослучайных чисел в языке программирования С++ используют функцию 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 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.006 сек.)