![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
SlHunter |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.12.2007 Репутация: нет Всего: нет |
Здравствуйте! Хотелось бы увидеть реализации хороших равномерных датчиков случайных чисел. Скорость абсолютно не важна, вожно качество, на данный момент я посмотрел 3 датчика:
•cтандартный rand(), т.е линейный конгруэнтный метод, он меня не устраивает совсем )); •метод Фибоначчи с запаздываниями, который мне не понравился, т.к. его последовательность очень зависимая, ну может быть я накасячил с реализацией; •ну и метод XorShift, на котором в данный момент остановился. Датчик нужен для генерирования других распределений, поэтому хотелось что бы он имел хорошее распределение. Кто интересовался данным вопросом прошу помочь. Интересуют именно реализации датчиков на С или С++. P.S. Википедию читал всё, что там есть по датчикам, если будете советовать книги, то пожалуйста только те что можно достать в электронном виде. P.P.S. форум вроде тоже перечитал интересующего меня ничего не нашёл, только ссылки на Кнута, которого я к сожалению не могу найти. |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
SlHunter, если нужен качественный генератор, то советую присмотреться к Boost.Random.
Есть ещё один момент: если нужны именно случайные числа(а не псевдо случайные), то тебе понадобится аппаратный генератор этих самых чисел. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 20 Всего: 121 |
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
SlHunter, еще на RSDN мутили проект качественного генератора. Можешь глянуть у них в списке проектов. Хотя, когда я его там увидел, до реализации дело не дошло еще =)
-------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
SlHunter |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.12.2007 Репутация: нет Всего: нет |
archimed7592, Нет абсолютно случайные числа не нужны, наоборот желательно, что бы опыт можно было повторить взяв то же самое начальное число, за Boost.Random спасибо, но желательны исходники, причём такие что б более менее понятные, вроде там нет, или я их ещё не нашёл щас поищу по внимательнее. Судя по всему генератор может быть либо хорошим и сложным, либо плохим и простым ( .... Boost.Random можно взять для сравнения что ли )
И если судить по моим заниям английского, этот генератор использует метод Mersenne twister, с ОЧЕНЬ большим периодом, что-то типа 2^19937. На Википедии есть псевдо код, попробую его. W4FhLF, я же написал, что Википедию читал. SaDFromSpb, а можно ссылки, посмотреть хотя бы их идеи алгоритмов. Может кто знает ещё какие-нибудь алгоритмы, или вдруг кто-то писал свой. Это сообщение отредактировал(а) SlHunter - 8.12.2007, 16:07 |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
SlHunter, Boost - это набор абсолютно открытых библиотек, с абсолютно открытыми исходниками, и абсолютно без каких-либо ограничений на использование библиотеки/исходников.
Boost.Random, как и большинство других библиотек из Boost не требует компиляции(подключил boost/random.hpp пользуйся). Что же касается "нужны понятные исходники", то конечно придётся для начала разобраться с устройством библиотеки, потом проще будет вытащить из многочисленных исходников, те, которые относятся к uniform distribution. Но простыми они тебе в любом случае не покажутся ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
SlHunter |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.12.2007 Репутация: нет Всего: нет |
Ну что ж будем разбираться с этим ) В любом случае пригодитяс, но прошу если у кого, что ещё есть пишите!
|
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 20 Всего: 121 |
Я читал, но подумал, что ты русской ограничился, ибо трудно представить себе задачу, которая требует чего-то большего, чем представлено в англоязычной версии вики. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
SlHunter |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.12.2007 Репутация: нет Всего: нет |
Ну вдруг там есть не всё, я просто хочу поискать ещё методы, в том числе и самодельные, а так я с тобой согласен моё первое метсо поиска это Википедия.
|
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 20 Всего: 121 |
Ну если чисто поресерчить, то из нескольких книг по крито, что я прочёл, мне больше всего понравилась "Брюс Шнайер. Прикладная криптография. Протоколы, алгоритмы и исходные тексты на языке C.", в частности главы "16. Генераторы псевдослучайных последовательностей и потоковые шифры" и "17. Другие потоковые шифры и генераторы истинно случайные последовательностей". В интернете ищется легко.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
SlHunter |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.12.2007 Репутация: нет Всего: нет |
Спасибо почитаем. Если найду.
|
|||
|
||||
shara |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 29.6.2004 Где: печенье? Репутация: нет Всего: 2 |
в криптографии есть такое понятие как Линейный Рекурентный Регистр (ЛРР) он по начальному заполнению генерит случайную гамму (0 или 1). в инете ссылок незнаю. кому интересно могу так рассказать, буквально на пальцах.
-------------------- с точки зрения аэродинамики шмель не может летать |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |