powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Я тут задумался
38 сообщений из 38, показаны все 2 страниц
Я тут задумался
    #39098030
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть колода карт. Как определить, хорошо ли она перемешана?
...
Рейтинг: 0 / 0
Я тут задумался
    #39098065
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы критерий инверсии проверял для мастей и карт одного достоинства.
...
Рейтинг: 0 / 0
Я тут задумался
    #39098429
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scf,

1) нужно определить критерий "что такое хорошо" - и вперед
2) с задачей об алгоритме перемешивания будет гораздо проще - она стандартная
...
Рейтинг: 0 / 0
Я тут задумался
    #39098752
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо определить критерий качеаства перемешивания и вычислить его для заданной перестановки карт в колоде.

Об этом недавно была тема в С++.
...
Рейтинг: 0 / 0
Я тут задумался
    #39098836
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критерий качества перемешивания? Да запросто: Сколько индивидуальных шагов потребуется для восстановления сортировки?

Берешь свой любимый метод сортировки и прогоняешь колоду через него подсчитывая количество сколько раз ты поменял две карты местами. Полученную цифру делишь на максимально возможное количество перестановок (мы его знаем из определения алгоритма сортировки) и получаешь искомый "процент перемешанности".
Хотя, наверное надо будет еще поделить максимум на два перед делением. Потому что максимум шагов мы можем получить если начальный массив (колода) находится в идеально-обратном порядке, что не может считаться перемешанным...
...
Рейтинг: 0 / 0
Я тут задумался
    #39098852
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl,
В этом случае колода, строго упорядоченная обратно "начальной" будет считаться идеально перемешанной.
...
Рейтинг: 0 / 0
Я тут задумался
    #39098854
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс, недочитал до конца.

ИМХО, с перестановками ничего путного не выйдет, очень много будет "особых" ситуаций.
...
Рейтинг: 0 / 0
Я тут задумался
    #39098858
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
в идеале не должно быть

1) повторяющихся мастей
2) повторяющихся достоинств
3) возрастающих/убывающих по порядку достоинств
4) повторяющихся последовательностей
...
Рейтинг: 0 / 0
Я тут задумался
    #39098872
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё немного интереснее)
...
Рейтинг: 0 / 0
Я тут задумался
    #39098964
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseв идеале не должно быть

1) повторяющихся мастей
2) повторяющихся достоинств
3) возрастающих/убывающих по порядку достоинств
4) повторяющихся последовательностей совсем немного из всего этого, все-таки должо быть, иначе это будет каким-то упорядочиванием.
...
Рейтинг: 0 / 0
Я тут задумался
    #39099063
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseв идеале не должно быть

1) повторяющихся мастей
2) повторяющихся достоинств
3) возрастающих/убывающих по порядку достоинств
4) повторяющихся последовательностейруки сдающему надо за такие сдачи отрывать, и канделябром по голове
...
Рейтинг: 0 / 0
Я тут задумался
    #39099110
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlКритерий качества перемешивания? Да запросто: Сколько индивидуальных шагов потребуется для восстановления сортировки?

Берешь свой любимый метод сортировки и прогоняешь колоду через него подсчитывая количество сколько раз ты поменял две карты местами. Полученную цифру делишь на максимально возможное количество перестановок (мы его знаем из определения алгоритма сортировки) и получаешь искомый "процент перемешанности".
Хотя, наверное надо будет еще поделить максимум на два перед делением. Потому что максимум шагов мы можем получить если начальный массив (колода) находится в идеально-обратном порядке, что не может считаться перемешанным...

Значит если использовать quicksort все колоды будут иметь примерно одинаковую меру "перемешанности" ?

На самом деле практически любой метод сортировки в большинстве случаев будет давать примерно одинаковые между собой результаты данного критерия.
...
Рейтинг: 0 / 0
Я тут задумался
    #39099641
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryЗначит если использовать quicksort все колоды будут иметь примерно одинаковую меру "перемешанности" ?
Нет, при использовании quicksort самой перемешанной будет считаться изначально упорядоченная колода.
...
Рейтинг: 0 / 0
Я тут задумался
    #39099755
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... я к сдыду должен признаться что нифига не понимаю в карточных играх.
И умею играть только в дураки. Но вроде-бы я читал что для некоторых игр
типа Покер или Блек Джек нужно собирать "правильные" комбинации.

Разумеется колода, отсортированная машинным детерминированным псевдо-случайным
обменом может иметь некоторые под-последовательности которые приведут
к слишком-уж подозрительному порядку сдачи. Поэтому конечно-же
Надо брать Secured-Random. Особенно если учесть тот факт что
карточные игроки и лудоманы проявляют дьявольскую наблюдательность
в оценке того как сдаёт тот или иной игровой автомат или интернет-казино.
...
Рейтинг: 0 / 0
Я тут задумался
    #39100018
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХУ "Хорошо перемешано" невозможно оценить. И это главное с точки зрения оценивающих перемешивание. Любая оценка, т.е. подгонка под оценку однозначно приводит к результату "плохо перемешано". Хорошо перемешано должно быть так, чтобы невозможно было оценить как перемешано.
...
Рейтинг: 0 / 0
Я тут задумался
    #39100041
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно еще перенумеровать все карты в колоде и считать тестируемый вариант результатом работы генератора случайных чисел. Методов для оценки их качества множество.
...
Рейтинг: 0 / 0
Я тут задумался
    #39100112
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИМХУ "Хорошо перемешано" невозможно оценить. И это главное с точки зрения оценивающих перемешивание. Любая оценка, т.е. подгонка под оценку однозначно приводит к результату "плохо перемешано". Хорошо перемешано должно быть так, чтобы невозможно было оценить как перемешано.
Для симметричного шифрования был критерий который я запомнил. Вобщем смена 1 бита в открытом
тексте должна порождать 50% изменившихся битов к шифро-блоке. +Там еще была куча стат-показателей
типа автокорреляции и т.п. Но не суть.

Вобщем. Мне кажется к тасованию карт можно применить нечто вроде критерия "добротности" как в шифрах
и хешах.

Ну примеру.

1. Отсортированная колода (по мастям и по рангу) после одного раудна тасования должна порождать 50%
изменившихся бит.

2. Повторный раунд тасования - тоже самое.

3. Не должно быть технической возможности узнать ГДЕ будет нужная карта через 1 раунд тасования.
Это мне кажется ключевой момент для всех карточных игр.

4. Для ГПСЧ период должен быть достаточно большой. Эээ.... еще больше. Нет еще-еще больше. Как-тот так.

По поводу битов ... эээ я еще не могу придумать чо как. Для 36/53 карт надо подумать. Возможно это нетривиально.
...
Рейтинг: 0 / 0
Я тут задумался
    #39100701
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОсобенно если учесть тот факт что карточные игроки и лудоманы проявляют дьявольскую наблюдательность в оценке того как сдаёт тот или иной игровой автомат или интернет-казино.
В казино есть хорошее истинно случайное число - точное время очередной сдачи. Думаю, достаточно грамотно внести его во входные данные, чтобы получить надёжное средство против любой "дьявольской наблюдательности".
...
Рейтинг: 0 / 0
Я тут задумался
    #39100783
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для онлайн-казино (а я думаю мы скорее всего будем обсуждать именно такой кейс) я-бы не стал
использовать время как аргумент для случайного числа.

Системное время в мс конечно иногда используют для seed. Но думаю что это может быть как сильной
так и слабой стороной алгоритма. Пока не готов аргументировать. Надо подумать.
...
Рейтинг: 0 / 0
Я тут задумался
    #39101205
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

нужна будет синхронизация по времени с сервером он-лайн казино
...
Рейтинг: 0 / 0
Я тут задумался
    #39101232
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

use case:
пусть он-лайн казино использует время раздачи как случайную величину
всего комбинаций 36! (36 факториал)
т.е имеем цикл с периодом Т=36!
Пусть одна комбинация соответствует одному моменту времени,
это означает, что точно установив время раздачи можно точно узнать комбинацию.
Установив приблизительно время раздачи, узнаем диапазон возможных комбинаций.
...
Рейтинг: 0 / 0
Я тут задумался
    #39101421
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblabпусть он-лайн казино использует время раздачи как случайную величину
всего комбинаций 36! (36 факториал)
т.е имеем цикл с периодом Т=36!

Мысль потерял. Между временем и "всего комбинаций".
...
Рейтинг: 0 / 0
Я тут задумался
    #39101541
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

посмотри основы работы псевдо ГСЧ
...
Рейтинг: 0 / 0
Я тут задумался
    #39101558
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblabПусть одна комбинация соответствует одному моменту времени,
Вот это уже вряд ли разумно. Время нужно использовать для внесения "непредсказуемости" в раздачу ГСЧ, а не как номер комбинации.
...
Рейтинг: 0 / 0
Я тут задумался
    #39101578
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

использование времени раздачи в качестве случайной величины, означает, что seed = момент времени
разве нет?
...
Рейтинг: 0 / 0
Я тут задумался
    #39101582
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblabmayton,

посмотри основы работы псевдо ГСЧ
Подумай о том что в 1 секунду казино выдало 2 сеансам игры 2 одинаковые сдачи.
...
Рейтинг: 0 / 0
Я тут задумался
    #39101617
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblabиспользование времени раздачи в качестве случайной величины, означает, что seed = момент времени разве нет?
Совершенно не обязательно. Существует сколько угодно других вариантов. Ну просто для примера - брать последовательность чисел, выдаваемую ГСЧ, и xor-ить каждое с младшими байтами времени раздачи.
...
Рейтинг: 0 / 0
Я тут задумался
    #39101648
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, вы серьезно не в курсе, откуда берутся псевдослучайные числа? В особенности, псевдослучайные числа для криптографии?
...
Рейтинг: 0 / 0
Я тут задумался
    #39101659
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
обсуждаем реализацию алгоритма перемешивания

авторВ казино есть хорошее истинно случайное число - точное время очередной сдачи


определим реализацию случайной величины: перетасованная определенным образом колода карт

если раздачи на разных столах начались одновременно , то колоды на первом и втором столе будут перетасованы одинаково
...
Рейтинг: 0 / 0
Я тут задумался
    #39101665
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblabесли раздачи на разных столах начались одновременно , то колоды на первом и втором столе будут перетасованы одинаково
Кстати, а что в этом страшного? Прежде чем пугать, дадите осмысленный сценарий использования этой уязвимости?

Нет, не будут, если у разработчика есть хотя бы десять грамм мозгов - достаточно, чтобы заксорить старший байт времени с номером стола.
...
Рейтинг: 0 / 0
Я тут задумался
    #39101683
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarermini.weblabиспользование времени раздачи в качестве случайной величины, означает, что seed = момент времени разве нет?
Совершенно не обязательно. Существует сколько угодно других вариантов. Ну просто для примера - брать последовательность чисел, выдаваемую ГСЧ, и xor-ить каждое с младшими байтами времени раздачи.

если я знаю точное время раздачи, то у меня появляется дополнительная информация о реализации случайной величины

PS: по поводу временных сидов: я рассмотрела самый простой случай, потому что там все ясно и понятно
...
Рейтинг: 0 / 0
Я тут задумался
    #39101685
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

давайте, я с вами соглашусь, а вы мне за это дадите адрес он-лайн казино :)
...
Рейтинг: 0 / 0
Я тут задумался
    #39101704
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblabесли я знаю точное время раздачи, то у меня появляется дополнительная информация о реализации случайной величины
Во-первых, точного времени Вы не знаете. Оно закопано внутри сервера, наружу не выходит, и если Вы можете до него добраться - Вам незачем тратить на это время, проще сразу брать тёпленькую ГСЧ.

Во-вторых, Вы не забыли, о чём вообще речь? Напомню, речь о том, что временем можно подсолить ГСЧ так, чтобы "сверх-наблюдательный игрок", стоя перед автоматом, не получил материала для анализа. О том, что перед автоматом три года заседает команда упакованных криптоаналитиков, речь не идёт.
...
Рейтинг: 0 / 0
Я тут задумался
    #39101705
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblabsoftwarer,

давайте, я с вами соглашусь, а вы мне за это дадите адрес он-лайн казино :)
Воспринимаю это как "Ой, всё".

Адреса онлайн-казино можете нагуглить самостоятельно.
...
Рейтинг: 0 / 0
Я тут задумался
    #39101724
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarermini.weblabесли я знаю точное время раздачи, то у меня появляется дополнительная информация о реализации случайной величины

Во-вторых, Вы не забыли, о чём вообще речь? Напомню, речь о том, что временем можно подсолить ГСЧ так, чтобы "сверх-наблюдательный игрок", стоя перед автоматом, не получил материала для анализа. О том, что перед автоматом три года заседает команда упакованных криптоаналитиков, речь не идёт.

вообще-то речь шла об он-лайн казино
...
Рейтинг: 0 / 0
Я тут задумался
    #39101737
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
авторО том, что перед автоматом три года заседает команда упакованных криптоаналитиков, речь не идёт.
не, не сидят, все хорошо прекрасная маркиза
=)
...
Рейтинг: 0 / 0
Я тут задумался
    #39101878
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseв идеале не должно быть

1) повторяющихся мастей
2) повторяющихся достоинств
3) возрастающих/убывающих по порядку достоинств
4) повторяющихся последовательностей

Чем больше подобных ограничивающих условий - тем, на самом деле, меньше допустимых вариантов тасовки, и больше определенности в последовательности карт.

Усилив требования, например, чтобы "через одну карту" тоже не повторялись масти, мы можем добиться,
что всем этим требованиям будет удовлетворять только одна последовательность карт в колоде.
Как в анекдоте про сисадмина, который предъявил столько требований и ограничений к паролям пользователей,
что подходящим остался только один пароль.

Под хорошим перемешиванием игроки скорее понимают минимум функции автокорреляции в колоде, то есть никакие масти или достоинства отдельных карт или их последовательностей не должны быть "похожи" на другие карты или последовательности в других частях колоды. "Похожесть" описывается формулой, ее сумма считается для данного расклада колоды, чем меньше она выходит - тем лучше перемешана, в идеале автокорреляция=ноль.
...
Рейтинг: 0 / 0
Я тут задумался
    #39101906
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПодумай о том что в 1 секунду казино выдало 2 сеансам игры 2 одинаковые сдачи.
Во-первых, не "секунду", а "миллисекунду". Не надо использовать time() как seed. В лучшем случае GetTickCount(), в худшем - timeb. Вероятность получить одинаковые раздачи стремится к нулю.
Во-вторых, инициализировать ГСЧ на каждой раздаче это не самая хорошая идея.
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Я тут задумался
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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