Как всегда выигрывать в «Камень, ножницы, бумага. Как выигрывать в игре камень-ножницы-бумага? (реализация оптимальной стратегии в Wolfram Mathematica)

Перевод поста Джона Маклуна (Jon Mcloone, директор департамента международного бизнеса и стратегического развития Wolfram Research). Оригинал поста: How to Win at Rock-Paper-Scissors
Скачать пост в виде документа Mathematica

С точки зрения математики игра камень-ножницы-бумага (см. Дополнение 1 в конце) не является особо интересной. Стратегия равновесия Нэша очень проста: случайно и с одинаковой вероятностью выбирайте из трех вариантов, и при условии проведения большого числа игр ни вы, ни ваш соперник не сможете одержать победу. Хотя, при обсчитывании стратегии при помощи компьютера всё ещё возможно выиграть у человека после большого числа игр.

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

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

Я думал о создании алгоритма в качестве одной из тем нашего курса статистики в рамках концепции Computer-Based Math . Но первая же статья, на которую я наткнулся в поисках предсказательных алгоритмов, рассматривала решение при помощи сложной конструкции на основе копула-распределений. Это решение было трудным для понимания школьника (а возможно, и для меня), поэтому я решил разработать более простое решение, которое я мог бы объяснить простыми словами. И пусть даже оно уже и было разработано ранее, намного веселее создавать вещи по-своему, чем находить их готовую реализацию.

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

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

Где 1 соответствует камню, 2 - бумаге и 3 - ножницам. Это оптимальное решение. Как бы вы ни играли, вы выиграете столько же игр, сколько и компьютер, и ваш показатель побед будет колебаться в районе нуля.

Итак, теперь было бы интересно переписать функцию chooseGo чтобы осуществлять предсказание касаемо вашего выбора, используя данные о последних играх, хранящиеся в переменной history . Первым шагом будет анализ совершённых в течение последних нескольких игр выборов и поиск всех случаев вхождения какой-либо последовательности. Наблюдая за тем, что человек делал в каждой следующей игре, мы можем обнаружить некий шаблон поведения.

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

Второй аргумент это количество последних элементов истории, по которым и будет вестись поиск. В данном случае в качестве аргумента функции передано число 1, что осуществляет поиск в данных только случаев вхождения {1,2}. Если мы выберем 2, то функция будет искать вхождения последовательности {3,2}, {1,2} и вернёт пустой список, поскольку такая последовательность ранее не встречалась.

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

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

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

Таким образом из этих двух проверок мы можем обнаружить, что первый даёт оценку в 100%, что следующим выбором человека будет камень, а второй показывает, что с 75% вероятностью человек выберет камень и с 25% вероятностью - ножницы.

И здесь я несколько застопорился в решении задачи.

В данном случае два предсказания по крайне мере более менее близки по результату, хотя и расходятся в численных значениях вероятностей. Но если вы проводите поиск по трём «срезам» данных c рядом различных длин истории, и результаты предсказаний противоречивы - как их объединить?

Я поместил заметку об этой проблеме в папку «Написать про это в блог» и забыл о ней до тех пор, пока несколько недель назад не произошёл спор о том, как осветить концепцию "статистической значимости " в курсе Computer-Based Math.

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

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

Теперь, если мы возьмём последний полученный нами результат, обнаруживается, что лучшее предсказание - камень, имеющее p-значение 0.17. Это значит, что лишь с вероятностью 0.17, данные, используемые для данного предсказания, отклоняются от дискретного равномерного распределения (DiscreteUniformDistribution[{1,3}] ), причём скорее случайно, чем из-за систематической ошибки, производимой человеческом или по какой-либо другой причине, которая могла изменить распределение.

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

И делаем такой выбор, который побьёт выбор человека.

Здесь вы видите результат. Вы можете скачать и самостоятельно опробовать его с сайта Wolfram Demonstrations.

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

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

Такой подход ведёт к началу некой «гонки вооружений», соревнований по написанию алгоритмов, которые будут выигрывать в камень-ножницы-бумагу у алгоритма соперника, и единственный способ прекратить это - вернуться к стратегии равновесия Нэша, осуществляя выбор через RandomInteger[{1,3}] .

Дополнение 1
В том случае, если вы не знаете, как играть в эту игру, правила таковы: вы выбираете камень, ножницы или бумагу, используя один из трёх жестов, показанных одновременно вами и вашим соперником. Камень побеждает ножницы (делает их тупыми), ножницы побеждают бумагу (они её режут), а бумага побеждает камень (она его заворачивает). Победивший получает одно очко, в случае ничьей оба игрока не получают очков.

Благодарю за помощь, оказанную в переводе данного поста.

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

Преимущество игры в том, что любой человек сможет быстро разобраться с её правилами и играть абсолютно в любом месте. Всё, что нужно, чтобы устроить соревнование, - это руки (противников и своя). Они есть если не у всех, то хотя бы у большинства людей, поэтому проблем не возникнет.

Правила игры

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

Сначала оба игрока (игроков может быть больше, но для примера будет рассмотрено 2 человека) встают друг напротив друга. Затем они считают до трёх и одновременно показывают одну из фигур:

1. "Камень" - это плотно сжатый кулак. Он побеждает ножницы и проигрывает бумаге.

2. "Ножницы" - это средний и указательный пальцы, вытянутые вперёд, в то время как все остальные прижаты к ладони. Они побеждают бумагу и проигрывают камню.

3. "Бумага" - это просто ладонь. Пальцы все должны быть прямыми и вытянутыми, обычно рука показывается тыльной стороной. Она побеждает камень и проигрывает ножницам.

Секреты психологии

Человек - существо разумное, но его подсознание способно сыграть с ним злую шутку. Небольшие подскажут, как выиграть «Камень, ножницы, бумага», и помогут почувствовать себя по-настоящему уверенным и сильным противником, способным на победу.

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

а) "камнем" - чуть напрягают все пальцы;
б) "ножницами" - чуть напрягают два пальца и слегка выдвигают их вперёд;
в) "бумагой" - держат руку расслабленной.

Во-вторых, по статистике чаще всего в игре используется "камень", а реже других фигур - "бумага". Памятуя об этом, можно получить преимущество.

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

На что можно играть в «Камень, ножницы, бумага»

Играть просто так, конечно, интересно, но не настолько, чтобы регулярно хотелось повторять забаву снова и снова. Если игра «Камень, ножницы, бумага» станет слишком частым спутником скучающих людей, ищущих весёлого времяпрепровождения, то вскоре она перестанет быть развлечением и надоест.

Однако не всё потеряно, пока есть разнообразные варианты для азартных и продвинутых игроков. Как в карточных или любых других играх, «Камень, ножницы, бумага» можно разнообразить поощрительными призами. Это не только прибавит интереса к происходящему, но и заставит лучше думать, прежде чем сделать следующий ход, ведь что-то будет стоять на кону. Самые распространённые примеры приведены ниже, но всё зависит лишь от фантазии игроков, поскольку она ничем не ограничивается.

«Камень, ножницы, бумага» на деньги

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

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

Более раскованный вариант, подходящий для узкой компании, в которой присутствуют как женщины, так и мужчины, не стесняющиеся не в самом приличном виде перед публикой. Игра «Камень, ножницы, бумага» на раздевание способна не просто позволить ощутить вкус долгожданной победы, но и почувствовать себя счастливым. Естественно, имеется в виду вариант, когда представитель/представительница противоположного пола проигрывает и снимает с себя одежду.

«Камень, ножницы, бумага» на раздевание заинтересует многих, ведь поглазеть на других, но не показать себя - очень заманчиво. Чтобы игра растянулась на некоторое время, а не закончилась через 5 минут, нужно установить правила: например, снимать одну вещь с тела можно лишь после 3-х проигрышей подряд. Более того, если игрок в течение 10 раундов ни разу не проиграл, ему даётся право реабилитации, то есть возможность надеть свою одежду обратно.

«Камень, ножницы, бумага» на желание


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

Помимо запрещённых действий, необходимо обговорить и правила. Например, мелкое желание (вроде прокукарекать 2 раза) можно загадывать человеку сразу же после первого его проигрыша. Однако можно не спешить и подождать немного: после 3-х проигрышей подряд игроку можно устроить более серьёзное испытание (стриптиз, например) в зависимости от отношений между играющими и другими немаловажными факторами.

Итог

«Камень, ножницы, бумага» запросто может стать любимой игрой многих людей. Она гарантирует удовольствие от процесса, развитие интуиции и/или стратегического мышления (у кого как), занятие свободного времени и множество других, не менее приятных бонусов. Главное, быть уверенным в себе и своей победе, и тогда всё обязательно получится.

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

Психология

По данным всемирной организации сообщества «Камень, ножницы, бумага», идея выбросить «камень» является роковой для новичков. Особенно часто такой ход делают мужчины. Оказывается, выбор такого хода имеет много общего с идеей о том, что «камень» воспринимается как «сильный» и «волевой», поэтому мужчины, как правило, и выбирают его. А поскольку противник будет догадываться, что вы выбросите «камень», вы должны сначала выбрать «ножницы».

Слово исследователям

Исследователи из университета Чжэцзян, специализирующиеся в области теории игр, посмотрели на образцы, которые люди, как правило, выбирают, чтобы играть. Они записали результаты игры 360 студентов, которые сыграли 20 тысяч раундов игры. В качестве стимула студентам, которые выигрывали, платили деньги.

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

Игры разума

Точно так же, как и в игре в покер, вы можете легко победить соперника, использовав макиавеллевскую силу внушения. Извечная тактика объявления, какой рукой вы будете играть, может оказаться полезным трюком. До тех пор, пока вы не играете с кем-то, кто на самом деле думает, что вы достаточно смелы, чтобы говорить о своем ходе, а затем делаете его на самом деле, вы можете изменить ход на тот, который победит ранее объявленный вами. Итак, если вы скажете, что выбросите «камень», ваш противник использует «бумагу». Это значит, что «ножницы» дадут вам в худшем случае ничью, а в лучшем - победу.

И, наконец, когда остальные шансы потеряны, вашей самой безопасной ставкой может быть «бумага», поскольку статистически ее выбирают только в 29,6% случаев, а не в 33,33%, как того можно было бы ожидать.

«Камень, ножницы, бумага» - игра, знакомая каждому еще с детства, она решала даже самые серьезные мужские споры. Я всегда считал, что эта игра основана всего лишь на везении, но это далеко не так. Сегодня «Так Просто!» откроет тебе несколько небольших секретов, которые позволят тебе всегда выигрывать в эту игру. И тогда ты будешь ехать на переднем сиденье, а за пивом побежит кто-то другой.

Секрет победы в «Камень, ножницы, бумага»

Если ты уже подзабыл правила, напомню: камень ломает ножницы, которые режут бумагу, а бумага накрывает камень.

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

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

Исходя из этого, можно вывести такую выигрышную стратегию

  • Если ты проиграл, выкинь тот знак, который бьет последний победный знак твоего оппонента.
  • Если ты выиграл, не продолжай показывать тот же знак, вместо этого выкинь последнюю комбинацию твоего проигравшего соперника.

Еще несколько важных закономерностей

  • Чаще всего представители сильного пола первыми используют камень, поэтому, если твой соперник - мужчина, попробуй бросить бумагу.
  • Если ты соревнуешься с опытным игроком, есть большая вероятность, что он попытается сыграть на твоей наивности и бросит бумагу. Используй ножницы.
  • Запомни, что, если твой соперник уже два раза подряд выбросил камень, этот человек ненавидит быть предсказуемым и в большинстве случаев использует ножницы. Брось камень.
  • Следи за пальцами соперника. Самые легкие движения подскажут тебе, какой ход противник собирается использовать. Все пальцы напряжены - камень. Все пальцы расслаблены - бумага. Только два пальца напряжены - ножницы.
  • Бумагу используют реже всего в игре - в 29,6 % случаев. Чаще используют ножницы - 35 %. И еще чаще камень - 35,4 %. Используй эффект неожиданности.

Расскажи об этих маленьких хитростях своему , он будет в полнейшем восторге от того, что будет всегда выигрывать споры со своими одноклассниками!

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

Как играть?

Ваш персонаж – типичный ковбой с Дикого Запада, привычный к тамошним реалиям и законам. Поэтому принять вызов на дуэль от других ковбоев он никогда не откажется. Дуэль строится по принципу игры-жеребьевки «Камень, ножницы, бумага». На игровом поле разместились три небольшие иконки с изображениями ковбойских лиц. Они здесь представляют как раз камень и ножницы с бумагой. Выбирайте иконку и ваш ковбой двинется к противнику. Дальнейшие действия зависят от того, насколько ваш выбор удачнее выбора соперника. В случае вашего преимущества, ваш противник погиб, а на счету появилось первое очко. Теперь вы снова кликаете по одной из трех иконок. Победителем становится обладатель трех очков. Выигрывайте все дуэли и зарабатывайте очки.

Статьи по теме: