Случайные числа и лотерейный автомат

computerworks

Новичок
Сделал игровой лотерейный сайт, где по результатам выпадения заданного игроком числа, происходит кратное увеличение выигрыша, вплоть до нескольких сотен крат от ставки.
Игрок отправляет некое число, скрипт генерирует числа от 0 до 100 и сопутствующие им кратности ставок, и если сгенерированное число равно заданному игроком числу - победа!
Все бы хорошо, но после того как посещаемость достигла 1-2 тысячи человек в день стали появляться "накрутки". А именно, некоторые игроки заведомо выигрывают чаще и больше, чем среднее большинство, причем играя несколько странно (делая ставку раз в 10-15 минут например). В общем анализ игр выявил, что игроки по всей видимости используют уязвимость в механизме вероятности выпадения чисел в играх.
На данный момент случайные числа генерируются функцией
PHP:
mt_rand(0,99);
Может быть стоит поискать какой-то более стохастический механизм формирования чисел?
Кто что посоветует?
 

Breeze

goshogun
Команда форума
Партнер клуба
если использовать стандартные функции, то в диапазоне от 0 до 99 можно только затруднить статистический анализ.
например, строить таблицу распределения от 0 до 99 тысяч на сто, и делать рандом от 0 до 100к.
периодически перестраивать таблицу.
 

WMix

герр M:)ller
Партнер клуба
мы же все знаем, что у компьютера нет случайных чисел, и любая функция случайности это законченный алгоритм чаще всего операющийся на предыдущее число или номер интерации...
просто меняй алгоритм рандома постоянно,.. все цифры я так понимаю известны у тебя... и по ним можно провести анализ,..

простых механизмов море к примеру,... сдвиг на случайное число,... но это 2е случайное число должно меняться каждые случайное колво минут (1-10).... и зависит от чегото иного нежеле рандом, к примеру %100 от микросекунды... и тд.

но знай, если кто догадается как это происходит, и это можно будет просчитать,.. (рандом это открытый алгоритм)
 

Redjik

Джедай-мастер
WMix
как просчитать великий корейский рандом в Lineage?
 

WMix

герр M:)ller
Партнер клуба
выписываешь все числа вряд, и ищешь повторения,
но я не знаю о чем ты говоришь,.. там есть алгоритм?
 

Redjik

Джедай-мастер
WMix
лучше подкинь статейку или инфу, куда покапать... заинтересовало =)))))
 

WMix

герр M:)ller
Партнер клуба
не знаю даже, я читал книжку про криптографию, там затрагивалась тема случайных чисел, но вот нагуглил чтото подобное
http://algolist.manual.ru/maths/generator/index.php (интересны статьи по ссылкам) ,...

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

WMix

герр M:)ller
Партнер клуба
и биржевой курс тоже достаточно случайное число...
 
  • Like
Реакции: AmdY

WMix

герр M:)ller
Партнер клуба
а может все проще, сумма ставок или сумма выбранных пользователями чисел случайна? если конечно играет не 1 человек....
 

AmdY

Пью пиво
Команда форума
Скорее всего всё гораздо проще и проблема не в алгоритме, а в какой-нить дыре на сайте.
 

WMix

герр M:)ller
Партнер клуба
С.
картинка правильная...
PHP rand() on Microsoft Windows
 

fixxxer

К.О.
Партнер клуба
если есть аппаратный генератор, то и /dev/random и openssl будут его использовать если все правильно настроить на сервере

вообще /dev/random вполне криптостоек, он либо (Linux) использует естественную энтропию (в случае с сервером преимущественно сетевой траффик) - но тут есть проблема блокировки когда энтропия кончается (на нагруженном сервере этого не будет), либо (freebsd) криптостойкий генератор (yarrow).
через openssl это тот же /dev/random обычно
 
Сверху