Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
ultramarin
Сообщений: n/a
#1

Генератор случайных чисел - C++

23.05.2009, 14:53. Просмотров 1707. Ответов 5
Метки нет (Все метки)

В общем, нужно составить программу, которая реализует алгоритм генерации случайных чисел. Естественно не используя random.
Перерыла массу алгоритмов и программок, но так ничего "нужного" для себя не нашла. Товарищи-программисты, помогите чем можете!)))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2009, 14:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Генератор случайных чисел (C++):

Генератор случайных чисел - C++
Есть функция, генерирующая случайные целые числа с помощью линейного конгруэнтного метода. Нужно сделать частотный побитовый тест для...

Генератор случайных чисел - C++
составить генератор случайных чисел, имеющий два члена - границы последовательности. Предоставить метод, который выводит СЧ из диапазона...

Генератор случайных чисел - C++
Вот написал программу, которая генерирует матрицу 9*9. В каждой строке - от 1 до 9, не повторяются В каждом стобце - то же самое. ...

Генератор случайных чисел - C++
Здорова господа! Нужно написать свой собственный генератор случайных чисел, такой же примерно как rand. От примерно написал кое...

Генератор случайных чисел - C++
Здравствуйте! Кто-нибудь объясните пожалуйста. Вот есть функция rand(). Она возвращает псевдослучайные числа от нуля до RAND_MAX. А можно...

генератор случайных чисел - C++
Всем доброго времени суток, вот решил написать генератор чисел длины 768 бит, все отлично вроде и работает но только проблема в том что...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Monte-Cristo
2789 / 1375 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
23.05.2009, 15:29 #2
ну составте функцию, которая на основе текущего времени будет выдавать вам рещультат. Т.е. фактически, все сводится к тому, что вам необходимо подобрать такую формулу, чтоб обробатывала текущее время в милисекундах и возвращала число, в нужном вам промежутке генерирования.
0
ultramarin
Сообщений: n/a
23.05.2009, 15:56 #3
часы пробовала как вариант, но лучше бы обойтись без них.
Evg
Эксперт CАвтор FAQ
17808 / 6014 / 388
Регистрация: 30.03.2009
Сообщений: 16,527
Записей в блоге: 26
23.05.2009, 16:03 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от ultramarin Посмотреть сообщение
часы пробовала как вариант, но лучше бы обойтись без них.
Любой генератор случайных чисел имеет некую отправную точку, которая реализовывается аппаратными средствами, потому как программными этого сделать нельзя. И обычно такой точкой является время.

Как уже говорилось - берёшь значение миллисекунд, делишь его на миллион - получаешь число от 0 до 1, дальше берёшь какую-нибудь идиотскую формулу а-ля f(x)=(x * 10.3473247 + x*x*100.988676 + x*x*x*^1000.2387462374) и считаешь от него дробную часть. При каждом следующем обращении к твоей функции в качестве x подставляй значение, полученное из предыдущего значения и времени.

Когда сделаешь - для проверки попробуй рандомно поставить 1000 точек на экран и визульно оценить, насколько это всё равномерно или есть перекосы. Причём ставить точки на прямоугольную область разных размеров
1
mik-a-el
Администратор
57764 / 37538 / 231
Регистрация: 10.04.2006
Сообщений: 12,740
23.05.2009, 16:09 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
http://en.wikipedia.org/wiki/Random_number_generation
http://www.boost.org/doc/libs/1_39_0...dom/index.html
http://algolist.manual.ru/maths/generator/park_mil.php
0
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
23.05.2009, 16:17 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <Windows.h>
#include <bcrypt.h>
#include <iostream>
 
int main()
{
    BCRYPT_HANDLE hAlgo = NULL;
    BCryptOpenAlgorithmProvider(&hAlgo, BCRYPT_RNG_ALGORITHM, NULL, 0);
 
    UINT random = 0;
    BCryptGenRandom(hAlgo, reinterpret_cast<PUCHAR>(&random), sizeof(random), 0);
 
    std::cout << random << std::endl;
 
    BCryptCloseAlgorithmProvider(hAlgo, 0);
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2009, 16:17
Привет! Вот еще темы с ответами:

Генератор случайных чисел - C++
Реализовать генератор случайных числе в диапазоне от нуля до единицы. После генерации случайного числа, записывать 0 или 1 (в соответствии...

Генератор случайных чисел - C++
Помогите написать программу, которая генерировала бы случайные числа мультипликативным конгруэнтным методом. Нужно использовать такое...

Генератор случайных чисел (с UI) - C++
Я создал простенький генератор случайных чисел с Пользовательским Интерфейсом (GUI). Добавлено через 21 минуту Актуальна :)

генератор случайных чисел - C++
как реализовать генератор случайных чисел? чтобы можно было вводить два числа(например 56 и 519), и случайное число генерировалось из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.05.2009, 16:17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru