Олег Агафонов
Просветленный
(29594)
17 лет назад
Как всё начиналось.
Попытки создать генератор случайных чисел (надо сказать, удачные) относятся к 3000 до н. э. и напрямую связаны с появлением игры Сенет в Древнем Египте. В наше время цифровых технологий это открытие послужило началом новой эры в сфере азартных игр - взять хотя бы новое поколение игровых автоматов и такое явление как онлайн-казино.
Как создается случайность?
При создании онлайн-казино разработчики сталкиваются с одной из самых насущных задач - как сделать так, чтобы всё работало как в реальной жизни. Все усилия направлены на соблюдение следующих параметров: графика, звук, правила игры (и их соблюдение, конечно же!) , а также создание впечатления настоящей игры, в какую привыкли играть в реальном казино. В своей статье мне хотелось бы подробнее остановиться как раз на последнем факторе (эмуляции игры в онлайне) и в особенности на том, что лежит в ее основе - генераторе случайных чисел, или ГСЧ, как его называют профессионалы.
Общеизвестный факт, что при нормальных условиях игры казино держит естественное преимущество над игроком. Но вы когда-нибудь задумывались, что это вообще такое и как это работает? Когда в печатных изданиях вы встречаете информацию, что у игровых автоматов процент отдачи равен 97% - что это значит? Или вот на рекламном плакате написано, что у определенного вида видеопокера он вообще больше 100%. Что это вам даст? К чему вы должны быть готовы на самом деле, что вам нужно знать?
Ключ к ответам на все эти вопросы лежит в понимании роли, которую играет генератор случайных чисел в определении процента отдачи игры (читайте: сколько вы получите от неё). Прежде чем ответить на этот вопрос, давайте рассмотрим свойства генератора случайных чисел и поймём, в чем же заключается их значение.
Что такое случайность?
Перво-наперво, «хороший» генератор должен удовлетворять следующим двум пунктам:
1) каждое число из целого ряда имеет равные шансы на выпадение,
2) выпадение числа не должно никоим образом зависеть от выпадения других чисел в ряду.
Очень важно уметь отличать понятия «шансы на выпадение» и «фактическое выпадение числа» . В первом случае нам дается лишь гарантия, что все числа могут выпасть одинаковое количество раз, а вот во втором делается больший упор на независимость событий, нежели на равные шансы выпадения каждого из чисел.
Причина, лежащая в основе этого, заключается в том, что если бы каждое число могло бы выпасть одинаковое количество раз, то это уже было бы не случайно! Например, допустим, у нас есть такой генератор, запрограммированный на генерацию чисел от 1 до 3 включительно. Первые два числа, которые он нам выдал, были бы 2 и 1. Как вы думаете, должно ли число 3 быть следующим на очереди? По правилу 1 (см. выше) , у каждого числа равные шансы на появление, а по правилу 2, предыдущее число никак не должно влиять на выпадение следующего. Таким образом, мы не можем знать, какое число в нашем примере выпадет после первых двух.
Очень важным следствием из этих двух правил является то, что есть вероятность повторения чисел при условии, что количество событий велико. Кстати, иногда одинаковые числа могут выпадать несколько раз подряд.
Самый распространенный метод генерации случайных чисел называется Линейный Конгруэнтный Метод, но есть ещё и другой - Аддитивный Конгруэнтный Метод. (Не вздумайте запоминать эти названия, а то мозги сломаются! ) Оба этих метода генерируют последовательность чисел, удовлетворяющую условию случайности.
Основа для использования этих и других способов генерации случайных чисел в том, что программное обеспечение может бесконечно продолжать генерировать числа независимо от того находится ли в данное время кто-нибудь непосредственно в процессе игры или нет. Это исключает возможность того, что игрок сможет сам определить, какой из методов генерации используется в данный момент, и исходя из этого «угадывать» , какое число выпадет далее.
Следующий случай поможет поня
Dima Tillyaev
Знаток
(258)
7 лет назад
Уточни вопрос. Генераторов псевдослучайных чисел много, а по-настоящему случайных нет (из-за особенностей компьютера). Но вроде все работают по такому принципу - генератор принимает число (зерно, seed), делает с ним куча куч вычичслений, выдает это число и изменяет число которое ему дали (зерно, seed). И это зерно он использует в дальнейшем
snejok147Знаток (443)
7 лет назад
стоит добавить что зерно может быть не постоянным, такой как время в настоящий момент дата или это может быть нагрузка процессора в данный момент или волна уловленная компьютером
LedinПрофи (628)
6 лет назад
Все процессы управляемы, следовательно, компьютер использует заданный алгоритм и выдаёт число