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

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

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

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

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

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

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
2786 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
23.05.2009, 15:29     Генератор случайных чисел #2
ну составте функцию, которая на основе текущего времени будет выдавать вам рещультат. Т.е. фактически, все сводится к тому, что вам необходимо подобрать такую формулу, чтоб обробатывала текущее время в милисекундах и возвращала число, в нужном вам промежутке генерирования.
ultramarin
Сообщений: n/a
23.05.2009, 15:56     Генератор случайных чисел #3
часы пробовала как вариант, но лучше бы обойтись без них.
Evg
Эксперт CАвтор FAQ
17292 / 5540 / 347
Регистрация: 30.03.2009
Сообщений: 15,083
Записей в блоге: 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 точек на экран и визульно оценить, насколько это всё равномерно или есть перекосы. Причём ставить точки на прямоугольную область разных размеров
mik-a-el
CyberForum Owner
56757 / 36507 / 231
Регистрация: 10.04.2006
Сообщений: 12,633
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
Rififi
2336 / 1051 / 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;
}
Yandex
Объявления
23.05.2009, 16:17     Генератор случайных чисел
Ответ Создать тему
Опции темы

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