!!WARNING!! Статья содержит минимальное количество МАТАНа и может провоцировать рак для неподготовленых !!WARNING!!
Всем известен миф о якобы уникальном корейском рандоме. Как человек нерелигиозный и сугубо практичный, я понимал, что проблема в неверной реализации универсального генератора рандомных чисел. Впервые я заметил неравномерное распределение при рандомном спавне. Это хорошо видно, если задать мин-макс побольше, чтобы видеть "сетку" спавна. Вчера я закончил "рандомный" дроп. Он не рандомный.
Случайные числа - это не тривиальная задача, и без доступа к внешнейму источнику энтропии (состояние процессора, например) очень тяжело получить реальное рандомное число. Однако, даже используя современные механизмы, довольно трудно получать сотни случайных чисел в секунду (ММО). Нужно очень ловко обходить известные проблемы. Проблем очень много (соль для каждого потока, обновление в 1 герц, получение дробных числел, получение их в диапазоне от 1 до 100 и тд тд). ПТС наступил на грабли в
@NCsoft, guys
Всем известен миф о якобы уникальном корейском рандоме. Как человек нерелигиозный и сугубо практичный, я понимал, что проблема в неверной реализации универсального генератора рандомных чисел. Впервые я заметил неравномерное распределение при рандомном спавне. Это хорошо видно, если задать мин-макс побольше, чтобы видеть "сетку" спавна. Вчера я закончил "рандомный" дроп. Он не рандомный.
Случайные числа - это не тривиальная задача, и без доступа к внешнейму источнику энтропии (состояние процессора, например) очень тяжело получить реальное рандомное число. Однако, даже используя современные механизмы, довольно трудно получать сотни случайных чисел в секунду (ММО). Нужно очень ловко обходить известные проблемы. Проблем очень много (соль для каждого потока, обновление в 1 герц, получение дробных числел, получение их в диапазоне от 1 до 100 и тд тд). ПТС наступил на грабли в
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
(презентация от Лаввэя - главного инженера MSVC по c++). Всего 3 строчки кода
C++:
//где-то при старте каждого нового потока
srand(time(NULL));
// получение случайного числа в диапазоне 0.0 - 99.99
double dice = std::rand() % 100;
if (dice <= dropData->GetChance())
{
//....
@NCsoft, guys