Камень ножницы бумага кредит отдавать не собираетесь. Как выигрывать в игре камень-ножницы-бумага? (реализация оптимальной стратегии в 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
В том случае, если вы не знаете, как играть в эту игру, правила таковы: вы выбираете камень, ножницы или бумагу, используя один из трёх жестов, показанных одновременно вами и вашим соперником. Камень побеждает ножницы (делает их тупыми), ножницы побеждают бумагу (они её режут), а бумага побеждает камень (она его заворачивает). Победивший получает одно очко, в случае ничьей оба игрока не получают очков.

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

Инструкция

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

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

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

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

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

Источники:

  • как играть камень ножницы бумагу

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

Инструкция

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

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

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

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

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

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

Видео по теме

Обратите внимание

Не стоит переживать по поводу возможных неудач. Они должны побудить вас еще больше работать над собой.

Совет 3: Как японскому роботу удается всегда выигрывать в «камень-ножницы-бумага»

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

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

Конечно, с математической точки зрения вероятность выигрыша человека и робота равна 1:3, но фактически робот значительно опережает человека и выигрывает всегда, подстраивая свой ответ под жест человеческой руки. В итоге, человек даже не замечает подвоха. Робот действует настолько быстро, что создается иллюзия синхронного действия, что робот играет по правилам, и что ему постоянно везет. Попытки обмануть механизм, меняя на полпути один символ на другой, ни к чему не приводят – Janken своевременно вычисляет эту хитрость противника и выдает свой символ.

Посетители выставки, впервые увидевшие робота и познакомившиеся с его возможностями, часто интересовались: кто победит в этой игре, если будут соревноваться два робота? На самом деле не победил бы никто. Так как движение руки-манипулятора начинается только после анализа движения руки противника, то оба робота просто будут ждать друг друга.

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

Источники:

  • что выигрывает камень или бумага

Одному Богу известно, сколько спорных ситуаций в детстве решалось с помощью игры в «Камень, ножницы, бумага». Да что там малышня, полным-полно взрослых ребятушек, находящих легкий выход за считанные секунды и выброшенный знак. Так что же скрывается за незатейливым выкидыванием пальцев: воля случая или выверенная стратегия? Ученые твердо знают ответ и дают свой победоносный рецепт.

Совсем недавно коллектив китайских исследователей из Чжэцзянского университета (Zhejiang University) оповестил мир о смелых выводах своих психологических тестов. Ученые с декабря 2010 г. по март текущего провели 5 экспериментальных циклов. Каждый цикл включал в себя 12 сессий c 6 участниками. Итого, общее количество испытуемых достигло 360 человек. Соотношение полов составило 217:143 с женским перевесом (попросту девушки активней записывались). Студент или аспирант мог участвовать в исследовании лишь единожды. Люди находились вне зоны видимости друг друга, перед экранами монитора. Тем самым был исключен вербальный и визуальный контакт. Каждый из участников затратил от полутора до двух часов на 300 игр со случайным соперником. Стимулом к победам служило небольшое денежное вознаграждение за каждый выигранный раунд.

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

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

Таким образом, если бы игрок А имел череду проигрышей, а игрок Б только что выкинул ножницы, и тем самым разрезал бумагу А, то А, скорее всего, выкинет камень, который даст неплохие шансы на выигрыш, так как Б, вероятно, будет придерживаться той же победной тактики. Психология поведения проста: побеждаешь — не меняешься, проигрываешь — переключаешься.

Проиграли? Выкиньте тот знак, который бьет последний победный знак вашего оппонента.

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

Все еще не до конца понятно? Вот какие выигрышные стратегии помогут вам оставаться непобедимыми:

Если вы победили в последней игре…

Если вы проиграли в последней игре (и противник не в курсе этой методики)…

  • …выкинув камень, переходите к ножницам в следующей схватке
  • …выкинув ножницы, переходите к бумаге в следующей схватке
  • …выкинув бумагу, переходите к камню в следующей схватке

Если вы проиграли в последней игре (и противник в курсе этой методики)…

  • …выкинув камень, переходите к бумаге в следующей схватке
  • …выкинув ножницы, переходите к камню в следующей схватке
  • …выкинув бумагу, переходите к ножницам в следующей схватке

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

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

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


Мы привыкли думать, что старая добрая игра «Камень, ножницы, бумага» построена на чистом везении (или случайности). Но, если бы это было так, играть в нее было бы не так интересно.

Коррупция.Спорт со ссылкой на AdMe.ru раскрывает для вас несколько секретов, используя которые вы всегда сможете выигрывать в этой битве. И тогда вы будете ехать на переднем сиденье, а за пивом побежит кто-то другой.

Во-первых, начнем с основ. Как вы, наверное, знаете, условно камень ломает ножницы, которые режут бумагу, а бумага накрывает камень.

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

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

Исходя из этого складывается выигрышная стратегия :

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

И еще несколько советов:

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


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

Психология

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

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

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

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

Игры разума

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

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