powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Анализ выпаших/ожидаемых чисел для казино
10 сообщений из 10, страница 1 из 1
Анализ выпаших/ожидаемых чисел для казино
    #39627299
Stephov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет
Имеется база данных с уже выпавшими числами. Таблица Bet состоит из полей BetId - уникальный номер числа, по нему поставлен индекс. И Lucky - само число.
Числа выпадают в диалазоне 00,00 - 99,99.
Задача в следующем: вводится число, показывающее сколько последних строк таблицы надо анализировать, а также число, анализ на выпадение которого надо произвести. Анализ подразумевает вывод количества НЕвыпадений данного числа.
К примеру: вводятся 1000 и 0,15 - то есть, найти среди последних 1000 записей количество выпавших чисел меньше 0,15 или больше 99,84.

Поиск для диапазона больше 99,84:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Select count(1) as HighCount from bet 
where betid >
(
	select max(betid) as lastBetId from bet where 
	lucky > 99.84 AND 
	betid >
	( select min(betid) as minBetId FROM 
		( Select betid from bet
			order by betid desc
			limit 1000
		) A 
	)
);


выдает верное значение, если число больше 99,84 попадалось за последние 1000 записей.

Если же:
1. число не выпадало и select max(betid) as lastBetId равно null
или
2. число обнаружено в последней записи (и max(betid) равен максимальному betid в таблице)
то в обоих случаях результатом будет 0.

Как в первом случае вместо неверного "0" получить количество анализируемых строк, т.е. 1000, а во втором - верный "0"?

Это
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Select case HighCount 
	when 0 then 1000
	else HighCount
       end as HighCount
from 
(Select count(1) as HighCount from bet 
where betid >
(
	select max(betid) as lastBetId from bet where 
	lucky > 99.84 AND 
	betid >
	( select min(betid) as minBetId FROM 
		( Select betid from bet
			order by betid desc
			limit 1000
		) A 
	)
))


верно для п1., но для 2. - опять же неверно..

И вообще, может сам подход к подсчету неоптимальный? Если есть предложения по улучшению - буду рад!
...
Рейтинг: 0 / 0
Анализ выпаших/ожидаемых чисел для казино
    #39627339
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StephovВсем привет
Имеется база данных с уже выпавшими числами. Таблица Bet состоит из полей BetId - уникальный номер числа, по нему поставлен индекс. И Lucky - само число.
Числа выпадают в диалазоне 00,00 - 99,99.
Задача в следующем: вводится число, показывающее сколько последних строк таблицы надо анализировать, а также число, анализ на выпадение которого надо произвести. Анализ подразумевает вывод количества НЕвыпадений данного числа.
Количество НЕвыпадений это общее число бросков минус количество выпадений.

То есть
Код: sql
1.
2.
3.
4.
with last1000 as (
   select Lucky from Bet order by BetId desc limit 1000
)
select 1000-count(*) from last1000 where Lucky=99.84



StephovК примеру: вводятся 1000 и 0,15 - то есть, найти среди последних 1000 записей количество выпавших чисел меньше 0,15 или больше 99,84.ээээ... это уже вторая задча?
Код: sql
1.
2.
3.
4.
with last1000 as (
   select Lucky from Bet order by BetId desc limit 1000
)
select count(*) from last1000 where Lucky<0.15 or Lucky>99.84



И вообще, для кого инструкции пишут?
http://www.sql.ru/forum/983207/kak-prosit-pomoshhi-s-zaprosom
...
Рейтинг: 0 / 0
Анализ выпаших/ожидаемых чисел для казино
    #39627395
Stephov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlИ вообще, для кого инструкции пишут?
http://www.sql.ru/forum/983207/kak-prosit-pomoshhi-s-zaprosom
Табличка была маленькая, поэтому на словах сказал. Но вот и скрипт, с интересующими нас полями:
Код: sql
1.
CREATE TABLE bet(betid bigint NOT NULL ,lucky decimal(18, 8))




White OwlКоличество НЕвыпадений это общее число бросков минус количество выпадений.

То есть
Код: sql
1.
2.
3.
4.
with last1000 as (
   select Lucky from Bet order by BetId desc limit 1000
)
select 1000-count(*) from last1000 where Lucky=99.84




Пардон, я неверно указал задачу.
Во-первых, нужна серия непрерывных НЕвыпадений. Во-вторых, ставки делаются не на конкретное число, а на весь диапазон.
К примеру, при ставке с шансом выигрыша 50% (коэффициент 2х), игрок может поставить на нижний диапазон 00,00 - 49,49 или верхний: 50,49 - 99,99. (Казино оставляет себе 1%, который между 49,49 - 50,49)

Выше я приводил иной пример:
StephovК примеру: вводятся 1000 и 0,15 - то есть, найти среди последних 1000 записей количество выпавших чисел меньше 0,15 или больше 99,84
Продолжу на нем.
Итак, игрок хочет сделать ставку с шансом 0,15% (выплата 660х). И анализирует, например, последние 1000 ставок, чтоб найти самую длинную непрерывную серию НЕвыпадения чисел в диапазоне 00,00 - 00,15 ИЛИ 99,84 - 99,99.
Результатом одного общего или двух отдельных запросов (для сторон < 49,49 и > 50,49) ожидается получить два числа: LowCount HighCount300 800
Если для совершения ставки он ждет, например, серию из 800 НЕвыпадений, то уже время ставить на диапазон >= 99.84!
...
Рейтинг: 0 / 0
Анализ выпаших/ожидаемых чисел для казино
    #39628179
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StephovТабличка была маленькая, поэтому на словах сказал. Но вот и скрипт, с интересующими нас полями:
Код: sql
1.
CREATE TABLE bet(betid bigint NOT NULL ,lucky decimal(18, 8))

А данные для таблички где?

Stephov ожидается получить два числа: LowCount HighCount300 800
Если для совершения ставки он ждет, например, серию из 800 НЕвыпадений, то уже время ставить на диапазон >= 99.84!И откуда взялись эти цифры?
...
Рейтинг: 0 / 0
Анализ выпаших/ожидаемых чисел для казино
    #39628183
Stephov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlStephovТабличка была маленькая, поэтому на словах сказал. Но вот и скрипт, с интересующими нас полями:
Код: sql
1.
CREATE TABLE bet(betid bigint NOT NULL ,lucky decimal(18, 8))

А данные для таблички где?
Вот данные:
betidlucky10001520515.8610001530829.1310001580994.0010001620245.72
и так далее.
White OwlStephov ожидается получить два числа: LowCount HighCount300 800
Если для совершения ставки он ждет, например, серию из 800 НЕвыпадений, то уже время ставить на диапазон >= 99.84!И откуда взялись эти цифры?
Эти цифры для примера: если, допустим, за последние 1000 строк было обнаружено 300 невыпадений в диапазоне 00,00-00,015 и 800 невыпадений в диапазоне 99,84 - 99,99.
...
Рейтинг: 0 / 0
Анализ выпаших/ожидаемых чисел для казино
    #39628723
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.sql.ru/forum/983207/kak-prosit-pomoshhi-s-zaprosom

Пункт 5 как раз для тебя.
...
Рейтинг: 0 / 0
Анализ выпаших/ожидаемых чисел для казино
    #39628735
Stephov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

Задача решена, прошу удалить тему с вопросом.
...
Рейтинг: 0 / 0
Анализ выпаших/ожидаемых чисел для казино
    #39628746
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так поделись ответом то!
...
Рейтинг: 0 / 0
Анализ выпаших/ожидаемых чисел для казино
    #39628950
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StephovWhite Owl,

Задача решена, прошу удалить тему с вопросом.

Здесь темы не удаляются, когда-нибудь инопланетяне открjют и почитают, как ты опровергал теорию вероятностей
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Анализ выпаших/ожидаемых чисел для казино
    #39809446
germanlazar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рассмотрим пример. Пусть на столе выставлен ряд фишек rrrgggbbb, и крупье объявил последовательности rg и gb. Игрок, например, может забрать фишки rg, лежащие на третьем и четвёртом местах слева. После этого крупье сдвинет фишки, и на столе получится ряд rrggbbb. Ещё дважды забрав фишки rg, игрок добьётся того, что на столе останутся фишки bbbи игра закончится, так как игроку больше нечего забрать со стола. Игрок мог бы действовать и по-другому — на втором и третьем ходах забрать не последовательности rg, а последовательности gb. Тогда на столе остались бы фишки rrb. Аналогично, игрок мог бы добиться того, чтобы в конце остались ряды rrr или rbb.

После окончания игры полученные фишки игрок меняет на деньги. Цена фишки зависит от её цвета.

Требуется написать программу определяющую максимальную сумму, которую сможет получить игрок.
Входные данные

В первой строке входных данных содержится число K (1 ≤ K ≤ 26) — количество цветов фишек. Каждая из следующих K строк начинается со строчной латинской буквы, обозначающей цвет. Далее в той же строке через пробел следует целое число Xi (1 ≤ Xi ≤ 150, i = 1..K) — цена фишки соответствующего цвета.

В (K+2)-ой строке описан ряд фишек, лежащих на столе в начале игры. Ряд задаетсяL строчными латинскими буквами (1 ≤ L ≤ 150), которые обозначают цвета фишек ряда.

В следующей строке содержится число N(1 ≤ N ≤ 150) — количество последовательностей, которые были объявлены крупье. В следующих N строках записаны эти последовательности. Гарантируется, что сумма длин этих N строк не превосходит 150 символов, и все они непустые.
Выходные данные

Выведите единственное целое число — максимальную сумму денег, которую может получить игрок.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Анализ выпаших/ожидаемых чисел для казино
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]