![]() |
Страницы (4): [1] 2 3 4 » Показать все 48 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Random numbers generator (https://hlfx.ru/forum/showthread.php?threadid=4247)
Random numbers generator
Собственно, генератор в волатиле, наговнянный по-быстрому и основанный на rand(), меня не устраивает, потому что он не портабельный и в разных компиляторах ведёт себя по-разному, да и длина серии rand() оставляет желать лучшего.
В ку3, скажем, используется очень просто линейный конгруэнтный метод (ЛКМ), что считается предсказуемым и вообще плохим. (rand, кстати, тоже обычно ЛКМ, хотя это остаётся на усмотрение автора библиотеки CRT/LIBC).
Единственный известный мне нормальный альтернативный генератор - в Xash3D - это по сути генератор из сорцов бетки хл2 (c перебитым копирайтом...). Мне даже удалось узнать, что автор генератора из бетки - и вовсе не Valve, а товарищи Press и Teukolsky, а Valve внесла кое-какие модификации косметической формы. Алгоритм также опубликован в Numeric Recipes (NR) (возвращаясь к копирайтам в ксаше - атата, Дядя Миша, у Numeric Recipes очень анальная лицензия!) Но пока не могу найти оригинальную статью (может, у кого есть?)
__________________
это только про игры, или вообще в программах?
__________________
http://www.moddb.com/mods/monorail-quest
Да без разницы -- я занимаюсь и волатилой, и молекулярной динамикой параллельно, вы же знаете.
Но всё же желательно быстрый.
Добавлено 19-01-2014 в 21:45:
Да, кстати, речь только о uniform-генераторах.
Добавлено 19-01-2014 в 21:46:
Кстати, генератор из бетки вот тут также почему-то называется "линейным конгруэнтным", хотя из кода это совершенно не очевидно, там как-то хитро всё...
__________________
XaeroX
ну я у себя его просто rand() подобным образом переиницализирую. а монтекарло у меня для расчёта столкновений частиц между собой.
>молекулярной динамикой
оно ж, кстати, очень близко к PiC, только в твоём случае, насколько я помню, частица действует только на ближайших соседей, а в PiC -- на весь коллектив.
у тебя двухмерная или трёхмерная геометрия? как сортируешь частицы/дефрагментируешь массив, на каждом шаге?
__________________
http://www.moddb.com/mods/monorail-quest
__________________
>(NTP-ансамбль).
эт. что то из биологии. а можешь примерно назвать сколько по порядку частиц в системе, и размеры сетки?
>остальное аппроксимируется, угу.
ур-ем пуассона?
>Кол-во частиц постоянно
граничные условия что ли периодические?
>Да это не важно
ну интересно ж про работу узнать
>как сортируешь частицы/дефрагментируешь массив
ну я к тому, как ты различаешь ближние и дальние. или просто хранишь отдельный массив с индексами вместо пересортировки? а сколько Мб/Гб занимает вся функция распределения?
__________________
http://www.moddb.com/mods/monorail-quest
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
http://habrahabr.ru/post/133320/
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
fire64
Аппаратную часть прилагать к каждой копии ОИФД/Вольфрама, или предлагать покупать отдельно за $9.99 без учёта стоимости доставки?
__________________
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
А что там с "/dev/urandom"? Как я понял, тоже имеет аппаратную природу? Под виндой аналог есть, какая-нибудь винапишная функция?
Добавлено 19-01-2014 в 22:56:
__________________
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'
Дядя Миша
Это вариант линейного конгруэнтного генератора, только в тыщу раз медленнее за счёт доступа к файлам.
__________________
XaeroX
/dev/urandom не такой хаотичный как /dev/random, но последний медленнее.
__________________
http://www.moddb.com/mods/monorail-quest
Временная зона GMT. Текущее время 00:44. | Страницы (4): [1] 2 3 4 » Показать все 48 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024