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

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

Нові статті

[19.02.2020] [C#]
Задача про розрізання квадрата (ООП, C#)
[09.02.2020] [Python]
Задача про розрізання квадрата (ООП, Python)
[06.02.2020] [Паскаль]
Задача про розрізання квадрата (ООП, Free Pascal)

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

Функції для роботи з випадковими числами в 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()%101<<' ';

    system ("pause");
    return 0;
}

Варіант від користувача fox11 (додано 9.02.2020):

#include <iostream>
#include <ctime>
using namespace std;
int main()
{
    srand(time(NULL));
    for (int i=0; i<50; i++)
       cout<<rand()%101<<endl;

}

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

 

#include <iostream>
using namespace std;

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

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

    system ("pause");
    return 0;
}

 


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

Підтримка


Статистика
Copyright Пилипчук О.П. © 2024
div id=