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

computerworks

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

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

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

но каким бы алгоритм небыл, я напишу такойже, буду запихивать выгрышную последовательность, пока не найду ту интерацию, в которой находится сейчас машина,...
 
и биржевой курс тоже достаточно случайное число...
 
  • Like
Реакции: AmdY
а может все проще, сумма ставок или сумма выбранных пользователями чисел случайна? если конечно играет не 1 человек....
 
Скорее всего всё гораздо проще и проблема не в алгоритме, а в какой-нить дыре на сайте.
 
С.
картинка правильная...
PHP rand() on Microsoft Windows
randbitmap-wamp.png
 
если есть аппаратный генератор, то и /dev/random и openssl будут его использовать если все правильно настроить на сервере

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