Регистрация
Регистрация Поиск Сообщество  
CGM > Казино > Гэмблинг
Опции темы

Алгоритм ГСЧ

Важные объявления
Старый 01.09.2009, 06:05     TS Старый   #1 (permalink)
Незнакомец
 
Регистрация: 02.04.2009
Адрес: Россия
Сообщений: 20
Мне до сих пор непонятно по какому алгоритму работает ГСЧ. Допустим используется команда random(37) для рулетки, но по какому принципу компьютер выбирает конкретное число из заданного диапазона? Нет же у него свободы воли в конце концов! Обьясните пожалуйста кто владеет информацией.
Smarter вне форума      
Старый 01.09.2009, 13:57   #2 (permalink)
Pff
Новичок
 
Аватар для Pff
 
Регистрация: 23.08.2009
Сообщений: 48
[Зарегистрироваться?]
Pff вне форума      
Старый 22.03.2014, 00:02   #3 (permalink)
Модератор
 
Аватар для angelruletki
 
Регистрация: 16.02.2011
Сообщений: 3,659
Отправить сообщение для angelruletki с помощью ICQ Отправить сообщение для angelruletki с помощью Skype™
Мне кажется, что если игра "Рулетка" будет запрашивать у ГСЧ всегда по 1 номеру и только тогда, когда игрок собирается сделать спин - то тогда могут быть на рулетке огромнейшие, невероятные перекосы. Так как сам генератор он допустим равномерен, например выдаёт номер "36" равномерно, раз примерно в 37-40 спинов. Но может так совпасть, что каждый раз когда игра будет обращатся к ГСЧ за номером, то ГСЧ уже выдал этот номер другому игроку и поэтому выдать нам не сможет. И такое невезение может быть о-о-очень долгим.
Поэтому я думаю что наверно рулетка запрашивает у ГСЧ целый пулл номеров, а уж потом во время игры потихоньку выбирает номера из этого пулла.
__________________
Нужны деньги? Возьми и выиграй в рулетку.
angelruletki вне форума      
Старый 07.07.2014, 18:56   #4 (permalink)
Незнакомец
 
Регистрация: 03.09.2007
Адрес: Санкт-Петербург
Сообщений: 24
Цитата:
Сообщение от angelruletki Посмотреть сообщение
Мне кажется, что если игра "Рулетка" будет запрашивать у ГСЧ всегда по 1 номеру и только тогда, когда игрок собирается сделать спин - то тогда могут быть на рулетке огромнейшие, невероятные перекосы. Так как сам генератор он допустим равномерен, например выдаёт номер "36" равномерно, раз примерно в 37-40 спинов. Но может так совпасть, что каждый раз когда игра будет обращатся к ГСЧ за номером, то ГСЧ уже выдал этот номер другому игроку и поэтому выдать нам не сможет. И такое невезение может быть о-о-очень долгим.
Поэтому я думаю что наверно рулетка запрашивает у ГСЧ целый пулл номеров, а уж потом во время игры потихоньку выбирает номера из этого пулла.
В софте казино скорее всего используется программный генератор псевдослучайных чисел (может быть совместно с аппаратным генератором). Псеводослучайное число на выходе генератора определяется предыдущим псевдослучайным числом, рано или поздно последовательность начинает повторяться. Наверно запрос "пулла" номеров не очень хорошая идея, поскольку дает возможность математического анализа. Скорее всего ГСЧ работает независимо от рулетки и выдает тысячи чисел в секунду, а при нажатии "spin" просто берется последнее.
Не вижу ничего плохого если один и тот-же номер достанется нескольким игрокам. Но даже если это не так, то никаких перекосов не будет, хотя бы из следующего соображения: когда твой номер отдают другому игроку это эквивалентно пропуску спина и не известно ни одной системы которая пропуском спинов могла бы изменить МО игры. Уже не говоря о том что у каждого игрока будут отбираться случайные номера и все это великолепно усреднится как будто ничего и не было.

Что касаемо получения чисел из диапазона 0..36, то разумным представляется следующий алгоритм:

1. Взять последнее 32-х битное число с ГСЧ
2. Обнулить все кроме младших 6-и бит, получив тем самым число в диапазоне 0...63
3. Если число по п.2 больше 36 перейти к п.1
4. Profit !!!!
denisio вне форума      
Старый 07.07.2014, 21:01   #5 (permalink)
Участник
 
Регистрация: 27.06.2014
Сообщений: 105
Цитата:
Сообщение от denisio Посмотреть сообщение
Псеводослучайное число на выходе генератора определяется предыдущим псевдослучайным числом
есть масса алгоритмов получения псевдослучайных чисел и те которые отталкиваются от предыдущего значения нехорошие генераторы. хороший генератор будет аппаратным и там точно выдаваемые числа не зависят от предыдущих.
Цитата:
Сообщение от denisio Посмотреть сообщение
Что касаемо получения чисел из диапазона 0..36, то разумным представляется следующий алгоритм:
это неразумный алгоритм. основная масса алгоритмов получения псевдослучайных чисел дают числа в диапазоне от 0 до 1. для того чтобы доработать до интервала (min,max) надо rnd*(max-min)+min
в случае рулетки - просто умножить на 36 и округлить.

Цитата:
Сообщение от angelruletki Посмотреть сообщение
Мне кажется, что если игра "Рулетка" будет запрашивать у ГСЧ всегда по 1 номеру и только тогда, когда игрок собирается сделать спин - то тогда могут быть на рулетке огромнейшие, невероятные перекосы. Так как сам генератор он допустим равномерен, например выдаёт номер "36" равномерно, раз примерно в 37-40 спинов. Но может так совпасть, что каждый раз когда игра будет обращатся к ГСЧ за номером, то ГСЧ уже выдал этот номер другому игроку и поэтому выдать нам не сможет. И такое невезение может быть о-о-очень долгим.
это может быть справедливым если игроков в заведении меньше 37. но если это так, я бы сказал это плохое заведение
в остальном такими "неувязками" можно пренебречь. зато в использовании одного генератора на все столы есть несомненный плюс для самого казино - тяжелее вычислить последовательность, поскольку реальная последовательность размазана по всем столам. именно поэтому скорее всего у казино один генератор на все случаи жизни к которому по мере надобности и обращаются.
и да, скорее всего рулетка действительно генерит пулл номеров каждому столу заранее, которые потом по мере затребованности и выдает. но связано это скорее с другими причинами...
Ferheg вне форума      
Старый 07.07.2014, 22:35   #6 (permalink)
Незнакомец
 
Регистрация: 03.09.2007
Адрес: Санкт-Петербург
Сообщений: 24
Цитата:
Сообщение от Ferheg Посмотреть сообщение
есть масса алгоритмов получения псевдослучайных чисел и те которые отталкиваются от предыдущего значения нехорошие генераторы. хороший генератор будет аппаратным и там точно выдаваемые числа не зависят от предыдущих.
ВСЕ алгоритмы получения псевдослучайных чисел отталкиваются от предыдущего значения. На то они и псевдослучайные. Хороший аппаратный генератор может отказать и начать выдавать константу, поэтому в нормальном софте обязательно будет присутствовать генератор псевдослучайных чисел в качестве одной из ступеней обеспечения случайности.

Цитата:
Сообщение от Ferheg Посмотреть сообщение
это неразумный алгоритм. основная масса алгоритмов получения псевдослучайных чисел дают числа в диапазоне от 0 до 1. для того чтобы доработать до интервала (min,max) надо rnd*(max-min)+min
в случае рулетки - просто умножить на 36 и округлить.
Неясно что вы имеете ввиду под числами от 0 до 1, но предположим стандартный float (IEE 754) или double. Во-первых, приведите пример хотя-бы одного алгоритма генерации псевдослучайных чисел внутренняя математика которого основана на использовании чисел с плавающей запятой. Во-вторых, то что вы называете от 0 до 1 в компьютере представляется как число от 0 до 2^(n)-1, где n = 24 или 64 или нечто похожее. Так вот вы предлагаете, фактически, разделить 2^(n) на 37 частей для определения номера. Фишка в том, что 2^(n) на 37 нацело не поделится и вероятность выпадения одного из чисел будет немного отличаться от остальных. При большом n разница будет мизерная (если биты действительно все случайные), тем не менее в лучших домах Филадельфии делают как я описал, а не так как вы придумали.

Цитата:
Сообщение от Ferheg Посмотреть сообщение
это может быть справедливым если игроков в заведении меньше 37. но если это так, я бы сказал это плохое заведение
в остальном такими "неувязками" можно пренебречь. зато в использовании одного генератора на все столы есть несомненный плюс для самого казино - тяжелее вычислить последовательность, поскольку реальная последовательность размазана по всем столам. именно поэтому скорее всего у казино один генератор на все случаи жизни к которому по мере надобности и обращаются.
и да, скорее всего рулетка действительно генерит пулл номеров каждому столу заранее, которые потом по мере затребованности и выдает. но связано это скорее с другими причинами...
Данный абзац я не могу прокомментировать, поскольку не улавливаю смысла написанного. Вы хоть людей пожалейте, которые это будут читать. Они ведь могут подумать, что вы что-то в этом понимаете.
denisio вне форума   +1 (+1/-0)    
Старый 08.07.2014, 00:08   #7 (permalink)
Участник
 
Регистрация: 27.06.2014
Сообщений: 105
Цитата:
Сообщение от denisio Посмотреть сообщение
ВСЕ алгоритмы получения псевдослучайных чисел отталкиваются от предыдущего значения.
вы по ссылочке вышеприведенной ходили чтобы так безапеляционно утверждать насчет ВСЕХ алгоритмов? использование источника энтропии нивелирует влияние предыдущего номера.
Цитата:
Сообщение от denisio Посмотреть сообщение
Во-вторых, то что вы называете от 0 до 1 в компьютере представляется как число от 0 до 2^(n)-1
представление это всего-лишь одна точка зрения. если на то пошло то в компьютере все представляется как число от 0 до 2^(n)-1 и я могу вернуть этот аргумент в виде контраргумента... и да, надо быть внимательнее - предлагалось не делить а умножать на 36, так что ничего не теряется.
Цитата:
Сообщение от denisio Посмотреть сообщение
тем не менее в лучших домах Филадельфии делают как я описал, а не так как вы придумали
я предполагаю. так как я наверняка не знаю как написан казиношный софт. но у меня есть некий опыт программиста, потому могу говорить о том как делал бы я.
так вот, в вашем предположении фактически генерируется последовательность 0..63 а используется из нее подмножество попадающее в диапазон 0..36. мало того что такой способ даст гораздо хуже сбалансированное распределение номеров чем при делении (а ведь нету деления!), так еще и получаем в среднем 27/63 генераций вашего генератора впустую. если на первое казино может закрыть глаза - ну будет кривая последовательность, так игрокам и надо, то использование ресурсов впустую, причем настолько явно не есть хороший тон. и если так пишут в лучших домах...
Ferheg вне форума      
Старый 08.07.2014, 18:42   #8 (permalink)
Незнакомец
 
Регистрация: 03.09.2007
Адрес: Санкт-Петербург
Сообщений: 24
Цитата:
Сообщение от Ferheg Посмотреть сообщение
вы по ссылочке вышеприведенной ходили чтобы так безапеляционно утверждать насчет ВСЕХ алгоритмов? использование источника энтропии нивелирует влияние предыдущего номера.
Все алгоритмы генерации псевдослучайных чисел генерируют псевдослучайную, т.е. описываемую некой формулой последовательность. Источник энтропии можно использовать для инициалиции алгоритма или для того чтобы получать числа в случайные моменты времени. Против этого я не возражаю и написал, что случайное число можно брать в момент нажатия "spin".

Цитата:
Сообщение от Ferheg Посмотреть сообщение
представление это всего-лишь одна точка зрения. если на то пошло то в компьютере все представляется как число от 0 до 2^(n)-1 и я могу вернуть этот аргумент в виде контраргумента... и да, надо быть внимательнее - предлагалось не делить а умножать на 36, так что ничего не теряется.
1. Массы алгоритмов получения псевдослучайных чисел в диапазоне от 0 до 1 существуют толко в вашем воображении. Если не согласны - примеры в студию.
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.Проблема не в том что я невнимательный, проблема в том что вы не понимаете того о чем пишете.


Цитата:
Сообщение от Ferheg Посмотреть сообщение
предполагаю. так как я наверняка не знаю как написан казиношный софт. но у меня есть некий опыт программиста, потому могу говорить о том как делал бы я.
Так и написали бы "я сделал бы так...". Вы написали "это неразумный алгоритм".

Цитата:
Сообщение от Ferheg Посмотреть сообщение
так вот, в вашем предположении фактически генерируется последовательность 0..63 а используется из нее подмножество попадающее в диапазон 0..36. мало того что такой способ даст гораздо хуже сбалансированное распределение номеров чем при делении (а ведь нету деления!), так еще и получаем в среднем 27/63 генераций вашего генератора впустую. если на первое казино может закрыть глаза - ну будет кривая последовательность, так игрокам и надо, то использование ресурсов впустую, причем настолько явно не есть хороший тон. и если так пишут в лучших домах...
Это единственный способ получить идеальное равномерное распределение. Генератор делает миллионы генераций впустую, пока вы смотрите на вращающуюся рулетку. Гонять биты во float, а потом умножать - вот это действительно ресурсы впустую. Если не верите мне, посмотрите как сделано в лучшем игорном доме острова Мэн: [Зарегистрироваться?]
Читать раздел "тасование карт".
denisio вне форума      
Старый 08.07.2014, 19:48   #9 (permalink)
Участник
 
Регистрация: 27.06.2014
Сообщений: 105
denisio, у меня нет желания никому ничего доказывать, тем более что каждый останется при своем мнении. можете даже считать что я не понимаю о чем говорю - ваше право.

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

Ps по поводу алгоритма работы генератора, по ссылке во втором посте все достаточно ясно написано. единственный вопрос в том как получить последовательность [0,36]. для этого есть такая вещь как представление. генератор генерирует некую последовательность битов, которые можно воспринимать как целое число либо как представление дробного числа. вся суть в том, что целое число для приведения к нужному интервалу надо делить на коэффициенты, а это потеря точности. но если рассматривать ту же последовательность битов как дробное число то для получения нужного интервала достаточно умножить на коэффициент - точность не теряется.
Ferheg вне форума      
Старый 05.03.2015, 14:45   #10 (permalink)
Незнакомец
 
Регистрация: 28.02.2015
Сообщений: 23
Осуществляется один полный цикл раздачи 37 чисел а каждое число выпадает по 37 раз в случайном порядке в течении 1369 спинов. Вот весь принцип.
probe159 вне форума      
Старый 05.03.2015, 23:15   #11 (permalink)
Бессмертный
 
Регистрация: 17.02.2004
Адрес: Russia
Сообщений: 4,469
Круто. Готова система миллионера - ждешь 1368 спинов, последний ставишь комплит по максимуму на гарантированного победителя. какой он построй, этот ГСЧ .
Yura вне форума   +1 (+1/-0)    
Старый 06.03.2015, 09:38   #12 (permalink)
Незнакомец
 
Регистрация: 28.02.2015
Сообщений: 23
Ты сначала определи с какого спина начинается новый цикл, так как если после игры закрыть окно, а потом снова открыть последовательность продолжается.
probe159 вне форума      
Старый 07.03.2015, 00:06   #13 (permalink)
Бессмертный
 
Регистрация: 17.02.2004
Адрес: Russia
Сообщений: 4,469
Цитата:
Сообщение от probe159 Посмотреть сообщение
Ты сначала определи с какого спина начинается новый цикл, так как если после игры закрыть окно, а потом снова открыть последовательность продолжается.
Ну это не проблема, как только все 37 чисел, кроме одного, пройдут по 37 раз, вот он цикл и есть. Максимум 2*1369 спинов для этого надо.
Систему дарю, скромную дольку от выигрыша можно слать мне на Вебмани .
Yura вне форума      
Старый 07.03.2015, 13:22   #14 (permalink)
Незнакомец
 
Регистрация: 28.02.2015
Сообщений: 23
Цитата:
Сообщение от Yura Посмотреть сообщение
Ну это не проблема, как только все 37 чисел, кроме одного, пройдут по 37 раз, вот он цикл и есть. Максимум 2*1369 спинов для этого надо.
Систему дарю, скромную дольку от выигрыша можно слать мне на Вебмани .
К сожалению я этим геморроем не занимаюсь
probe159 вне форума      
Старый 07.03.2015, 23:54   #15 (permalink)
Бессмертный
 
Регистрация: 17.02.2004
Адрес: Russia
Сообщений: 4,469
Что есть гемморой? Отправка скромной дольки?
Или гарантированные килобаксы выигрыша? Вот зажрались рулеточники - лень несколько часов пособирать инфу, чтобы потом легкие тысячи долларов собрать!
Yura вне форума      
Старый 08.03.2015, 16:05   #16 (permalink)
Незнакомец
 
Регистрация: 28.02.2015
Сообщений: 23
Цитата:
Сообщение от Yura Посмотреть сообщение
Что есть гемморой? Отправка скромной дольки?
Или гарантированные килобаксы выигрыша? Вот зажрались рулеточники - лень несколько часов пособирать инфу, чтобы потом легкие тысячи долларов собрать!
Вычислять ГПСЧ. У каждого свой подход
probe159 вне форума      
Старый 08.05.2015, 13:56   #17 (permalink)
Новичок
 
Регистрация: 01.05.2015
Сообщений: 35
Отправить сообщение для up1891 с помощью Skype™
Цитата:
Сообщение от probe159 Посмотреть сообщение
Осуществляется один полный цикл раздачи 37 чисел а каждое число выпадает по 37 раз в случайном порядке в течении 1369 спинов. Вот весь принцип.
Не прокатит. За 4 часа собрал более 21000 спинов, прогнал ( минут 15 компьютер думал ) в программе и ... ни одного совпадения.
up1891 вне форума      
Старый 08.05.2015, 22:04   #18 (permalink)
Бессмертный
 
Аватар для krooto
 
Регистрация: 09.11.2008
Адрес: Spb
Сообщений: 7,317
Отправить сообщение для krooto с помощью Skype™
почему просто бы не взять для общего развития скажем и не посмотреть в исходниках линукса реализацию генератора случайных чисел ?

[Зарегистрироваться?]

В серьезных системах используются аппаратные генераторы случайных чисел причем выходной поток с таких генераторов подвергается мат анализу на несколько критериев случаности

[Зарегистрироваться?]
__________________
Δόξα ἐν ὑψίστοις Θεῷ, καὶ ἐπὶ γῆς εἰρήνη, ἐν ἀνθρώποις εὐδοκία
krooto вне форума      
Старый 13.06.2018, 08:50   #19 (permalink)
Новичок
 
Регистрация: 07.07.2017
Сообщений: 37
Не распознать нам смертным алгоритм!
PanY1990 вне форума      

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Волшебный алгоритм(дневник обучения) jjjean Блоги учителей 269 30.12.2010 07:05
Алгоритм рассчета ICM AVG51 Одностоловые турниры 4 26.11.2007 05:05
Алгоритм получения систем счета DoubleZero Блэкджек 1 18.04.2007 23:36



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.

Быстрый переход
Правила форумов CGM Контакты Справка Обратная связь CGM.ru Архив Вверх Главная
 
Использование материалов сайта разрешено только при наличии активной ссылки на источник.
Все права на картинки и тексты принадлежат Информационному агентству CGM и их ПАРТНЕРАМ. Политика конфидециальности
CGM.ru на Youtube CGM.ru на Google+ CGM.ru в Twitter CGM.ru на Facebook CGM.ru в vKontakte CGM.ru в Instagram

В сотрудничестве с Pokeroff.ru
Текущее время: 16:59. Часовой пояс GMT +3.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot