| ||||
| ||||
|
Важные объявления |
|
01.09.2009, 06:05 TS | #1 (permalink) |
Незнакомец
Регистрация: 02.04.2009
Адрес: Россия
Сообщений: 20
|
Мне до сих пор непонятно по какому алгоритму работает ГСЧ. Допустим используется команда random(37) для рулетки, но по какому принципу компьютер выбирает конкретное число из заданного диапазона? Нет же у него свободы воли в конце концов! Обьясните пожалуйста кто владеет информацией.
|
0 |
22.03.2014, 00:02 | #3 (permalink) |
Модератор
|
Мне кажется, что если игра "Рулетка" будет запрашивать у ГСЧ всегда по 1 номеру и только тогда, когда игрок собирается сделать спин - то тогда могут быть на рулетке огромнейшие, невероятные перекосы. Так как сам генератор он допустим равномерен, например выдаёт номер "36" равномерно, раз примерно в 37-40 спинов. Но может так совпасть, что каждый раз когда игра будет обращатся к ГСЧ за номером, то ГСЧ уже выдал этот номер другому игроку и поэтому выдать нам не сможет. И такое невезение может быть о-о-очень долгим.
Поэтому я думаю что наверно рулетка запрашивает у ГСЧ целый пулл номеров, а уж потом во время игры потихоньку выбирает номера из этого пулла.
__________________
Нужны деньги? Возьми и выиграй в рулетку. |
0 |
07.07.2014, 18:56 | #4 (permalink) | |
Незнакомец
Регистрация: 03.09.2007
Адрес: Санкт-Петербург
Сообщений: 24
|
Цитата:
Не вижу ничего плохого если один и тот-же номер достанется нескольким игрокам. Но даже если это не так, то никаких перекосов не будет, хотя бы из следующего соображения: когда твой номер отдают другому игроку это эквивалентно пропуску спина и не известно ни одной системы которая пропуском спинов могла бы изменить МО игры. Уже не говоря о том что у каждого игрока будут отбираться случайные номера и все это великолепно усреднится как будто ничего и не было. Что касаемо получения чисел из диапазона 0..36, то разумным представляется следующий алгоритм: 1. Взять последнее 32-х битное число с ГСЧ 2. Обнулить все кроме младших 6-и бит, получив тем самым число в диапазоне 0...63 3. Если число по п.2 больше 36 перейти к п.1 4. Profit !!!! |
|
0 |
07.07.2014, 21:01 | #5 (permalink) | |||
Участник
Регистрация: 27.06.2014
Сообщений: 105
|
Цитата:
Цитата:
в случае рулетки - просто умножить на 36 и округлить. Цитата:
в остальном такими "неувязками" можно пренебречь. зато в использовании одного генератора на все столы есть несомненный плюс для самого казино - тяжелее вычислить последовательность, поскольку реальная последовательность размазана по всем столам. именно поэтому скорее всего у казино один генератор на все случаи жизни к которому по мере надобности и обращаются. и да, скорее всего рулетка действительно генерит пулл номеров каждому столу заранее, которые потом по мере затребованности и выдает. но связано это скорее с другими причинами... |
|||
0 |
07.07.2014, 22:35 | #6 (permalink) | |||
Незнакомец
Регистрация: 03.09.2007
Адрес: Санкт-Петербург
Сообщений: 24
|
Цитата:
Цитата:
Цитата:
|
|||
+1 (+1/-0) |
08.07.2014, 00:08 | #7 (permalink) | |||
Участник
Регистрация: 27.06.2014
Сообщений: 105
|
Цитата:
Цитата:
Цитата:
так вот, в вашем предположении фактически генерируется последовательность 0..63 а используется из нее подмножество попадающее в диапазон 0..36. мало того что такой способ даст гораздо хуже сбалансированное распределение номеров чем при делении (а ведь нету деления!), так еще и получаем в среднем 27/63 генераций вашего генератора впустую. если на первое казино может закрыть глаза - ну будет кривая последовательность, так игрокам и надо, то использование ресурсов впустую, причем настолько явно не есть хороший тон. и если так пишут в лучших домах... |
|||
0 |
08.07.2014, 18:42 | #8 (permalink) | ||||
Незнакомец
Регистрация: 03.09.2007
Адрес: Санкт-Петербург
Сообщений: 24
|
Цитата:
Цитата:
2. Алгоритмы дают случайный поток бит. Из них можно изготовить хоть float от 0 до 1, хоть номер на рулетке, хоть туза в рукаве. 3. Изготовить случайное число 0 до 1 типа float из случайных бит можно, но я вижу две проблемы: a) Не понятно зачем это нужно, если можно сразу генерировать номер на рулетке б) Не понятно что это даст. В отличии от абстрактной математики между 0 и 1 будет не бесконечное число чисел, а вполне конечное (например 1/1024, 2/1024, 3/1024 .... 1023/1024). 4.Умножением ли, делением ли, вы имеющейся диапазон чисел от 0 до 1 разбивате на 37 промежутков. Например: Число= ОКРУГЛ(36*400/1024)=14. 5.Поскольку числа от 0 до 1 получены из двоичного случайного числа, то их количество будет кратно степени двойки. Количество чисел на рулетке не кратно степени двоики и на равные промежутки разделить не удастся. Возникнет "перекос" в вашей терминологии. 6. Я не утверждаю, что эту погрешность вы заметите невооруженным взглядом, я утверждаю что имеется простой алгоритм по исключению ее вообще. 7.Проблема не в том что я невнимательный, проблема в том что вы не понимаете того о чем пишете. Цитата:
Цитата:
Читать раздел "тасование карт". |
||||
0 |
08.07.2014, 19:48 | #9 (permalink) |
Участник
Регистрация: 27.06.2014
Сообщений: 105
|
denisio, у меня нет желания никому ничего доказывать, тем более что каждый останется при своем мнении. можете даже считать что я не понимаю о чем говорю - ваше право.
по ссылке я бы почитал, но очевидно для этого надо регистрироваться, поэтому не судьба. хотя могу заметить что тасование это не генерация нового числа, потому алгоритмы будут разные. тасованием я как-то давно занимался... впрочем продолжайте считать что я ничего не понимаю о чем пишу. Ps по поводу алгоритма работы генератора, по ссылке во втором посте все достаточно ясно написано. единственный вопрос в том как получить последовательность [0,36]. для этого есть такая вещь как представление. генератор генерирует некую последовательность битов, которые можно воспринимать как целое число либо как представление дробного числа. вся суть в том, что целое число для приведения к нужному интервалу надо делить на коэффициенты, а это потеря точности. но если рассматривать ту же последовательность битов как дробное число то для получения нужного интервала достаточно умножить на коэффициент - точность не теряется. |
0 |
07.03.2015, 00:06 | #13 (permalink) | |
Бессмертный
Регистрация: 17.02.2004
Адрес: Russia
Сообщений: 4,469
|
Цитата:
Систему дарю, скромную дольку от выигрыша можно слать мне на Вебмани . |
|
0 |
08.05.2015, 22:04 | #18 (permalink) |
Бессмертный
|
почему просто бы не взять для общего развития скажем и не посмотреть в исходниках линукса реализацию генератора случайных чисел ?
[Зарегистрироваться?] В серьезных системах используются аппаратные генераторы случайных чисел причем выходной поток с таких генераторов подвергается мат анализу на несколько критериев случаности [Зарегистрироваться?]
__________________
Δόξα ἐν ὑψίστοις Θεῷ, καὶ ἐπὶ γῆς εἰρήνη, ἐν ἀνθρώποις εὐδοκία |
0 |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Волшебный алгоритм(дневник обучения) | jjjean | Блоги учителей | 269 | 30.12.2010 07:05 |
Алгоритм рассчета ICM | AVG51 | Одностоловые турниры | 4 | 26.11.2007 05:05 |
Алгоритм получения систем счета | DoubleZero | Блэкджек | 1 | 18.04.2007 23:36 |
|
|