Середа, 13.12.2017
Творча лабораторія

Навчальні посібники та робочі зошити з інформатики - якісно і дешево


Меню сайту
Реклама
Категорії каталогу
MS Visual C++ 2005 Express Edition [3]
Середовища програмування [7]
Особливості встановлення та використання різних середовищ програмування
MS Visual Basic 6 [1]
Microsoft Visual Basic
C# [7]
Програмування мовою C#
C++ [3]
Паскаль [4]
ЛОГО [1]
Олімпіадне програмування [0]
Головна » Статті » Програмування » C++

Функції для роботи з випадковими числами в C++

Нові статті

[17.09.2015] [Інформація]
Інформатика — місток між предметами
[20.05.2015] [Інформація]
Алгоритми і виконавці: безкомп’ютерний етап
[12.04.2015] [Навчальні посібники]
Авторська концепція комплекту «Інформатика. Базовий курс. 7 клас»

Пилипчук О.П., вчитель інформатики Гаврилівської ЗОШ Теофіпольського району Хмельницької області

Функції для роботи з випадковими числами в C++

Для ефективного використання в програмі випадкових чисел потрібно принаймні два засоби:

  1. функція-генератор, яка при кожному виклику повертатиме випадкове число;
  2. функція-ініціалізатор для випадкової ініціалізації генератора.

Необхідність в другій функції викликана тим, що випадкові числа, отримані програмним шляхом, насправді є псевдо-випадковими. Вони обчислюються за певною формулою і за однакових початових умов послідовність чисел буде повторюватись. При виклику функції-ініціалізатора для функції-генератора встановлюється нове початкове значення.

Мова C++ пропонує цілу низку стандартних функцій для роботи з випадковими об'єктами. Так склалось, що деякі з них подібні за призначенням, а деякі не завжди доступні, що іноді викликає плутанину. Розглянемо основні функції детальніше.

Функції rand і srand

int rand(void);

- функція-генератор випадкових чисел з періодом 2 в 32 степені. При кожному виклику повертає наступне псевдо-випадкове число в межах від 0 до RAND_MAX. RAND_MAX - символьна константа, оголошена у файлі stdlib.h, яка визначає найбільше випадкове число.

Портабельність: POSIX, Win32, ANSI C, ANSI C++.

void srand(unsigned seed);

- ініціалізує генератор випадкових чисел. Початкова ініціалізація відбувається викликом srand з аргументом 1. Нове початкове значення встановлюють викликом цієї функції з іншим аргументом.

Портабельність: POSIX, Win32, ANSI C, ANSI C++.

Функції random і randomize

Ці функції доступні лише на платформі Win32, отже підтримуються не всіма компіляторами.

int random(int num);

- функція-генератор випадкових чисел. Повертає псевдо-випадкове число в межах від 0 до num-1.

Портабельність: Win32.

void randomize(void);

- ініціалізує генератор випадкових чисел випадковим чином.

Портабельність: Win32.

Приклад використання

Задача. Вивести 50 випадкових цілих чисел з діапазону від 0 до 100.

- з використанням rand() і srand()

#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;

int main()
{
    time_t t;
    srand((unsigned) time(&t));

    for (int i=0; i<50; i++)
       cout<<rand()%100<<' ';

    system ("pause");
    return 0;
}

- з використанням random() і randomize()

 

#include <iostream>
using namespace std;

int main()
{
    int t;
    randomize();

    for (int i=0; i<50; i++)
        cout<<random(100)<<' ';

    system ("pause");
    return 0;
}

 


Интернет реклама
Категорія: C++ | Додав: teachlab (28.10.2009)
Переглядів: 4479 | Рейтинг: 0.0/0
Всього коментарів: 0
Додавати коментарі можуть тільки зареєстровані користувачі.
[ Реєстрація | Вхід ]
Форма входу
Пошук
Друзі сайту

Підтримка
Ви можете підтримати цей проект:

WMR164778923006
WMZ277001591405

Система Orphus

Маєте свій сайт?
Заробіть на ньому грошей!


Не маєте власного сайту?
Заробіть на обміні файлами!
Статистика
Copyright Пилипчук О.П. © 2017
div id=