HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Random numbers generator
Кто-нибудь исследовал вопрос?
Страницы (4): [1] 2 3 4 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34523
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Random numbers generator

Собственно, генератор в волатиле, наговнянный по-быстрому и основанный на rand(), меня не устраивает, потому что он не портабельный и в разных компиляторах ведёт себя по-разному, да и длина серии rand() оставляет желать лучшего.
В ку3, скажем, используется очень просто линейный конгруэнтный метод (ЛКМ), что считается предсказуемым и вообще плохим. (rand, кстати, тоже обычно ЛКМ, хотя это остаётся на усмотрение автора библиотеки CRT/LIBC).

Единственный известный мне нормальный альтернативный генератор - в Xash3D - это по сути генератор из сорцов бетки хл2 (c перебитым копирайтом...). Мне даже удалось узнать, что автор генератора из бетки - и вовсе не Valve, а товарищи Press и Teukolsky, а Valve внесла кое-какие модификации косметической формы. Алгоритм также опубликован в Numeric Recipes (NR) (возвращаясь к копирайтам в ксаше - атата, Дядя Миша, у Numeric Recipes очень анальная лицензия!) Но пока не могу найти оригинальную статью (может, у кого есть?)

Цитата:
W.H. Press, S.A. Teukolsky "Portable random number generators" // Comput. Phys. - 1992. - V. 6. - N 5. - P. 522-524.

Я нашёл работу, которая развивает их идеи (Marsaglia, Zaman, 1994), но хотелось бы докопаться до оригинала.
А просто так юзать код из этой статьи не хочу именно из-за анальности NR (к коей он и привязан). В общем, нужны оригинальные статьи, на которые будут ссылки, а не NR.

Собственно, вопросы такие:
1) Чем плох ЛКМ, помимо предсказуемости (ок, это важно для сетевой шифровки, где генерится ключ, но в основном в игровом процессе - не особо)?
2) Используете ли вы Монте-Карло?
3) Вне зависимости от ответа на вопрос 2, какой генератор псевдослучайных чисел используете вы и почему?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 131130

Старое сообщение 19-01-2014 14:30
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



это только про игры, или вообще в программах?

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 131131

Старое сообщение 19-01-2014 14:39
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34523
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Да без разницы -- я занимаюсь и волатилой, и молекулярной динамикой параллельно, вы же знаете.
Но всё же желательно быстрый.

Добавлено 19-01-2014 в 21:45:

Да, кстати, речь только о uniform-генераторах.

Добавлено 19-01-2014 в 21:46:

Кстати, генератор из бетки вот тут также почему-то называется "линейным конгруэнтным", хотя из кода это совершенно не очевидно, там как-то хитро всё...

__________________

Сообщить модератору | | IP: Записан
Сообщение: 131132

Старое сообщение 19-01-2014 14:46
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



XaeroX

ну я у себя его просто rand() подобным образом переиницализирую. а монтекарло у меня для расчёта столкновений частиц между собой.

>молекулярной динамикой
оно ж, кстати, очень близко к PiC, только в твоём случае, насколько я помню, частица действует только на ближайших соседей, а в PiC -- на весь коллектив.

у тебя двухмерная или трёхмерная геометрия? как сортируешь частицы/дефрагментируешь массив, на каждом шаге?

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 131133

Старое сообщение 19-01-2014 14:53
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34523
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
thambs писал:
частица действует только на ближайших соседей

Ближайшие соседи явно, остальное аппроксимируется, угу.
Цитата:
thambs писал:
у тебя двухмерная или трёхмерная геометрия? как сортируешь частицы/дефрагментируешь массив, на каждом шаге?

Трёхмерная. Кол-во частиц постоянно (NTP-ансамбль).
Да это не важно, мне сейчас конкретно для волатилы надо, я просто сразу пишу код с учётом того, что он может понадобиться в "серьёзных проектах", где принято цитировать источники.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 131134

Старое сообщение 19-01-2014 14:56
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



>(NTP-ансамбль).
эт. что то из биологии. а можешь примерно назвать сколько по порядку частиц в системе, и размеры сетки?
>остальное аппроксимируется, угу.
ур-ем пуассона?
>Кол-во частиц постоянно
граничные условия что ли периодические?
>Да это не важно
ну интересно ж про работу узнать

>как сортируешь частицы/дефрагментируешь массив
ну я к тому, как ты различаешь ближние и дальние. или просто хранишь отдельный массив с индексами вместо пересортировки? а сколько Мб/Гб занимает вся функция распределения?

__________________
http://www.moddb.com/mods/monorail-quest

Отредактировано thambs 19-01-2014 в 15:09

Сообщить модератору | | IP: Записан
Сообщение: 131135

Старое сообщение 19-01-2014 15:01
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34523
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
thambs писал:
а можешь примерно назвать сколько по порядку частиц в системе, и размеры сетки?

Порядок 10^4-10^5, больше требуется крайне редко (число атомов в глобулярном белке - порядка нескольких тысяч, вот если явный растворитель - ситуация меняется).
Цитата:
thambs писал:
ур-ем пуассона?

Хе-хе, если бы. По-разному. Если без явной воды - то generalized Born обычно.
Цитата:
thambs писал:
граничные условия что ли периодические?

Пока нет, т.к. растворитель неявный.
С явным буду делать периодические, и вместо аппроксимации - суммирование по Эвальду, это стандарт, в общем-то, уже пару-тройку десятков лет.
Цитата:
thambs писал:
ну я к тому, как ты различаешь ближние и дальние.

Они редко обновляются, так как в МД (биологической, по крайней мере) нет быстрых и резких переходов. STL-контейнеров пока хватает, как я уже сказал, размеры системы невелики.
В МД рандомы нужны для начальных скоростей и прочих стартовых корректив для преодоления локальных энергетических барьеров, а к Монте-Карло я так, пока присматриваюсь.

Добавлено 19-01-2014 в 22:14:

Цитата:
thambs писал:
эт. что то из биологии.

изобарно-изотермический ансамбль

__________________

Сообщить модератору | | IP: Записан
Сообщение: 131136

Старое сообщение 19-01-2014 15:14
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32210
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
XaeroX писал:
Дядя Миша, у Numeric Recipes очень анальная лицензия!)

Да на здоровье же

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 131140

Старое сообщение 19-01-2014 15:27
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 33

Рейтинг



http://habrahabr.ru/post/133320/

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | | IP: Записан
Сообщение: 131143

Старое сообщение 19-01-2014 15:36
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34523
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


fire64
Аппаратную часть прилагать к каждой копии ОИФД/Вольфрама, или предлагать покупать отдельно за $9.99 без учёта стоимости доставки?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 131146

Старое сообщение 19-01-2014 15:43
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 33

Рейтинг



Цитата:
XaeroX писал:
Аппаратную часть прилагать к каждой копии ОИФД/Вольфрама, или предлагать покупать отдельно за $9.99 без учёта стоимости доставки?


1С с USB ключами же продают, там почему бы и ОИФД/Вольфрама не продавать с генератором шума

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | | IP: Записан
Сообщение: 131149

Старое сообщение 19-01-2014 15:54
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34523
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


А что там с "/dev/urandom"? Как я понял, тоже имеет аппаратную природу? Под виндой аналог есть, какая-нибудь винапишная функция?

Добавлено 19-01-2014 в 22:56:

Цитата:
fire64 писал:
почему бы и ОИФД/Вольфрама не продавать с генератором шума

Проблема главным образом в том, что ОИФД и Вольфрам сами по себе игры бесплатные. А то бы оно конечно да.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 131150

Старое сообщение 19-01-2014 15:56
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32210
Нанёс повреждений: 392 ед.

Рейтинг



XaeroX бери из system32 любой файл и читай первые четыре символа, затем читай еще один файл, и вычитай один инт из другого.
Получившееся число врапом используй для открытия третьего файла в папке system32, читай оттуда raw дату, сложив два предидущих инта (тоже с врапом, чтоб не вылезти за размер файла) - будет тебе полурандом
Номера первого и второго файла можно например вычислить из текущей даты и текущего времени. (это для первого раза). А потом прибавлять к ним те самые смещения, которые случайно прочлись из того или иного файла.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 131152

Старое сообщение 19-01-2014 16:42
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34523
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Дядя Миша
Это вариант линейного конгруэнтного генератора, только в тыщу раз медленнее за счёт доступа к файлам.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 131155

Старое сообщение 19-01-2014 17:14
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



XaeroX

/dev/urandom не такой хаотичный как /dev/random, но последний медленнее.

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 131156

Старое сообщение 19-01-2014 17:17
- За что?
Тема: (Опционально)
Ваш ответ:



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


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 08:33. Новая тема    Ответить
Страницы (4): [1] 2 3 4 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Random numbers generator
Кто-нибудь исследовал вопрос?
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024