Логический/вероятностный вопрос:Выбираю из сумки

StackOverflow https://stackoverflow.com/questions/1814808

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

Если в сумке одного игрока заканчивалась сумка, в нее случайным образом добавлялись другие из общего запаса.

Это было полезно?

Решение

Пока:

  • разделение на «бассейные» сумки случайное
  • распределение игроков по данному мешку для пула является случайным
  • игра устроена так, что предметы, вытянутые игроками, фактически удаляются из сумки (никогда не возвращаются в сумку или любую другую сумку на протяжении текущей игры)
  • игроки не осведомлены о содержании любой из сумок

Два подхода («оригинальный» с одной большой общей сумкой, «модифицированный» с одной большой сумкой на игрока) эквивалентны с точки зрения вероятностей.

Это становится немного сложнее только ближе к концу игры, когда сумки некоторых игроков пустуют.Справедливее всего позволить выбирать из 100% предметов, которые все еще находятся в игре, следовательно, они должны оба выбрать, из какой сумки они выбирают, и [вслепую, конечно] выбрать один предмет из этой сумки.

Эта задача иллюстрирует интересную характеристику вероятностей, которая заключается в том, что Вероятности относятся к объему знаний, которыми человек обладает о ситуации..Например, ведущий игры может хорошо знать, что в сумке «пула», назначенной, скажем, игроку X, нет, скажем, буквы «А» (думая о скрэббле), но до тех пор, пока никто из игроков не знает об этом (и до тех пор, пока перегородки в мешке для пула были полностью случайными), игра остается честной, и игроку «X» по-прежнему приходится предполагать, что его/ее вероятность попадания «А» в следующий раз, когда вытягивается буква, такая же, как если бы все оставшиеся буквы были ему доступны.

Редактировать:
Несмотря на математическую обоснованность утверждения о том, что обе процедуры полностью эквивалентны, восприятие является важным фактором в играх, включающих случайную составляющую (в частности, если в игре присутствует и денежная составляющая).Чтобы избежать гнева игроков, которые не понимают этого равенства, вы можете придерживаться первоначальной процедуры...

Другие советы

В зависимости от правил игры, @mjv является правильным, начальное случайное деление не влияет на вероятности. Это аналогично игре, в которой n игроков по очереди вытягивают карты из колоды лицевой стороной вниз: начальное перемешивание колоды - это случайное деление на «сумки». карточек для каждого игрока.

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

Поднимаясь до уровня программного обеспечения, если игра требует одну сумку, я бы рекомендовал просто запрограммировать ее таким образом: она должна быть не сложнее, чем n сумок, и вам не нужно доказывать новую игру эквивалентно старому.

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

Для игры достаточно случайного ИМХО!

В зависимости от того, насколько важна безопасность, все может быть в порядке (если речь идет о деньгах (вы или они), НЕ ДЕЛАЙТЕ ЭТОГО). Я не совсем уверен, что это будет менее случайно с точки зрения невежественного игрока.

а) Не рассчитывайте на то, что они не знают, что ваша программа может быть взломана, и тогда они узнают, какие части появятся

б) Было бы очень сложно заполнить пакеты таким образом, чтобы вы не представляли уязвимости. Например, давайте возьмем наивный алгоритм случайного выбора одного и помещения его в первое ведро, его извлечения, а затем проделывания того же самого для второго ведра и так далее. Вы просто гарантировали, что, если есть N фигур, у первого игрока была вероятность 1 / N выбрать данный кусок, у второго игрока 1 / (N-1), у третьего 1 / (N-3) и скоро. Игроки могут затем проанализировать уже сыгранные фигуры, чтобы выяснить вероятность того, что другие игроки держат определенные фигуры.

Я ДУМАЮ следующий алгоритм может работать лучше, но почти все люди ошибаются с вероятностью, когда впервые придумывают новый алгоритм. НЕ ИСПОЛЬЗУЙТЕ ЭТО, просто поймите, что это может покрывать уязвимость безопасности, о которой я говорил:

<Ол>
  • Создайте список из N упорядоченных предметов и создайте экземпляры P игроков
  • Отметьте 1 / P предметов случайным образом (с заменой) для каждого игрока
  • Повторяйте это до тех пор, пока все N элементов не будут помечены и количество предметов, отмеченных для каждого игрока (ПРИМЕЧАНИЕ: может занять намного больше времени, чем вы можете жить в зависимости от N и P)
  • Поместите соответствующие предметы в ведро игрока и случайным образом переставьте (НЕ используйте алгоритм обмена местами)
  • Даже тогда, после всего этого, у вас все еще может быть уязвимость для кого-то, выясняющего, что находится в его ведре из эксплойта. Палка с объединенным пулом, все еще сложно выбрать действительно случайно, но это сделает вашу жизнь проще.

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top