Как стать автором
Обновить

Комментарии 155

Починил, а то вдруг кто решит воспользоваться
const array = [3, 1, 25, 7];
for(elem of array){
  (elem => setTimeout(() => console.log(elem), elem))(elem);
}
Тьфу ты ж. Классическая ошибка с замыканиями. В первом комменте. Позорище =(
Хочу уточнить: меня минусуют за самокритику? о_О
Это почти как плюсуют… жаль, что Хабру это не объяснить никак )
Да ладно вам, на Хабре просто не любят переходы на личности и оскорбления и просто не заметили, что комментатор писал самому себе.

Зачем так сложно?


const array = [3, 1, 25, 7];
for(const elem of array){
  setTimeout(() => console.log(elem), elem);
}

const- и let-переменные новые на каждой итерации цикла, их не нужно как-то дополнительно замыкать.

[3, 1, 25, 7].forEach(elem => setTimeout(console.log, elem*100, elem));
А по столу стучать нельзя? Это была следующая мысль после того, как додумал про карту в секунду.
Задача просто немного непонятно сформирована: из начала следует, что оба игрока сидят за одним столом и видят друг друга, а потом говорится, что информацией нельзя меняться. Ну то есть после прочтения всей статьи смысл запрета понятен, а вот в момент решения ограничения выглядят не очень четкими. Возможно, лучше было бы как-то так указать, что каждый видит только стол и карты на нём, и это единственный канал связи.
В посте уточнил, спасибо.

Это как скорость света. Объекты могут двигаться быстрее, но передавать при этом информацию — нет.
Я тоже подумал так же, как и Aracon, причём до описания способов обмена информацией (полагаю, в паре мы бы быстро скооперировались).
После этих уточнений в статье возник вопрос:
Но нельзя меняться информацией между собой и показывать карту до момента, пока она не будет положена на стол. То есть нельзя говорить, стучать по столу, подмигивать и так далее — ничего нельзя.

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

А с уверенным видом положить карту с числом 99 на стол рядом с собой (рубашкой вверх, конечно) и оперировать оставшимися двумя, чтобы показать, что я уверен, что это число ну уж очень большое и будет последним?
Показывать карты нельзя. Двигать карту медленно — думаю, на упрощённых правилах конкретно The Mind можно, на турнире — нет.
По этой игре еще и турниры есть? Как это вообще работает в данном случае?
Возможно игра на скорость?
Принято строгий вариант правил называть турнирным. Но турниры возможны, условно, за каждую удачно выложенную карту очко. Каждый с каждым, дальше подсчёт очков.
Кстати, «Квантовый вор» — прекрасная книга, где на первых страницах описан турнир по дилемме заключённого. И ещё много отличных вещей.

А чем, с-но, отсчет секунд и т.п. вещи отличается от постукивания по столу? Если можно первое, то можно и все остальное — вплоть до явного озвучивания чисел на руках.

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

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

Как они могут передавать друг другу информацию, если в данной стратегии они не принимают информацию? Их действия уже определены в момент t = 0, и они никак не меняются от дальнейших действий партнёра.
Не деяние, тоже деяние.
Отказ от принятия информации сигнализирует партнеру, какая стратегия выбрана.
Демонстративное закрывание глаз достаточно информативно.

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

Но люди не рациональны ;)
Как они могут передавать друг другу информацию, если в данной стратегии они не принимают информацию?

Как это не принимают? Они же видят задержку, с-но принимают. Вот если построить процесс так, чтобы игроки не знали с какой задержкой выкладывает карту партнер — тогда информация бы передавалась.
А так — ну проще сказать цифру на карте и не париться.

Давайте формализуем.
1. Игрок получает карты и смотрит их. На картах числа x, y, z.
2. В голове игрока стремительно проносятся те же рассуждения, что и в посте.
3. Игрок решает, что через x секунд он выложит карту с числом х, через y секунд он выложит карту с числом y, через z секунд он выложит карту с числом z.
4. После того, как он это решил, это решение не подлежит пересмотру независимо ни от каких действий второго игрока. Второй игрок может закрывать или не закрывать глаза (привет, 2PAE). Может танцевать ламбаду. Может орать первому игроку в ухо номера своих карт. Между любыми событиями, происходящими в мире с момента из пункта 3, и стратегией первого игрока не существует каузальной связи. (Исключая, конечно, события, которые физически помешают игроку воплотить в жизнь данную стратегию. Например, если второй игрок отгрызёт ему руки.)
Кстати, спасибо за замечательный пример очевидно нерационального поведения. Как я уже упомянул ниже, получилась шикарная модель, которую я, вполне возможно, нагло скопирую для своих писательских целей (с указанием источника, разумеется), и приятно видеть её развитие прямо в обсуждении :)
Указание источника не требуется. А в чём, собственно, нерациональность?
Я про «отгрызёт ему руки». В некоторых ситуациях это может оказаться моделью, которая совсем ненамного преувеличивает реальность (обычно вымышленную, но всё же). Прошу прощения, если прозвучало так, как будто это относится к Вам.
«Давайте формализуем.» А давайте! :)

Человек узнает какая будет игра.
Человек соглашается стать игроком.

Согласие стать игроком является сигналом другому игроку, что будет применена именно эта стратегия.

Информация передана до наступления момента t = 0.

И да, если вы выводите из игры второго игрока, то вы играете в другую игру.

Это я ещё не затронул пласт вариантов о нерациональности человека.
Доводить до абсурда легко)

Давайте так: на расстоянии в сотню световых лет находятся две человеческих колонии. Тысячу лет назад их патриархи договорились о том, что в назначенный час их потомки сыграют в игру. И вот час настал. Ровно 50 лет назад генератор случайных чисел, находящийся ровно посередине между этими планетами, послал два сигнала. В сторону одной из планет полетели три числа, закодированные электромагнитными импульсами. В сторону другой — другие три числа. И вот наконец эти сигналы достигли своих целей. Два человека, которые никогда не видели друг друга и никогда друг друга не увидят, делают свои ходы. Лишь через сто лет сигнал от одной планеты долетит до другой. С величайшей точностью рассчитав время отправки этих сигналов и сравнив его с хронометражем ходов своего соотечественника, учёные узнают, была партия успешной или неуспешной. Сами игроки до этого момента, скорее всего, не доживут.

Итого: играют два человека, которые не могли обменяться информацией просто по законам физики. И стратегия работает.
Доводим до логического конца. Научный метод однако! ;)

Факт договорённости использования стратегии возникает ДО начала игры.

Информация передаётся ДО начала игры. Сам факт согласия на игру является фактом передачи информации.

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

И да, мы не знаем возможно ли передача информации быстрее чем скорость света.

Физики говорят что вроде да. Мол два кванта запутываются и распутываются вне зависимости от расстояния между ними.
Может я конечно не так понял физиков. :(

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

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

Да кто их слушает этих физиков? Помнится физики и в теорию относительности не верили. ;))

И да, строкой ниже я упомянул, что возможно я не правильно понимаю физику.
Помнится физики и в теорию относительности не верили.

А вам не помнится — в специальную теорию относительности они не верили или же в общую теорию относительности? Потому что просто "теории относительности" на самом деле не существует.

Я хотел сказать и говорю, что информация об устройстве мира не полная. И когда-то информация об устройстве мира, которое сейчас считаются верной, даже не была известна. И возможно лет через 150-300 представления о мире будут совсем совсем другими.
В любом случае, давайте закруглятся.
Всего вам хорошего. :)
в обе же… и до сих пор не все верят.
Это бессмысленная формулировка. По ней можно считать, что любые два человека, у которых есть хоть какая-то общая информация, обменивались информацией.

Бессмысленная — в том плане, что в принципе, да, мы можем определить обмен информацией таким образом. Но такое определение мешает сделать какие-либо конструктивные выводы.

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

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

Даже два примера: 2PAE и Druu ;-)
Человек, из условия, незнакомый, к нему индивидуальную тактику заранее не подберёшь. И в принципе нельзя подобрать тактику к 100% оппонентов — всегда найдётся тот, кто первым ходом выложит самую большую свою карту, и привет.

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

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

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


Я вообще не понял, какой смысл давать эту задачу, если откидывать все "нестандартные" ответы? Что я вынес от решения этой задачи или оттого что узнал ответ — да ничего, единственная польза в том, что на другом собеседовании смогу ответить на такой же вопрос.

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

Тогда бы я предложил, скажем, случайные блуждания по степеням тройки. Кинул монетку, прошёл шаг в выбранном направлении. Снова кинул, прошёл три шага. Потом девять, и так далее. Степени тройки — потому что как только будет достигнуто количество шагов, превышающее расстояние между парашютистами, одной удачной пары бросков монеток будет достаточно, чтобы они встретились, независимо от того, сколько неудачных пар бросков было ранее.
Да, неплохая идея.
Вы не подумали чуть глубже. Парашютистам достаточно оставить знак на месте приземления, допустим бросить свои парашюты, что обычно и делают диверсанты. И тогда начинаем ходить допустим 1 км налево, разворачиваемся идём 3 км направо, потом опять разворот и в другую сторону топаем 6 км и так далее, пока не наткнёмся на брошенные парашюты.
Второй раз в одних и тех же комментах у меня возникает желание привести ссылку на это свою статью. Не буду ему сопротивляться.
Ваша статья невероятно прекрасна. Буду ею теперь выносить мозг мерзким людишкам всем, кто не успел убежать.
один ходит, другой стоит, как вариант
Вроде нюанс был в том что стратегия должна быть одинаковая, иначе да, это самое простое.
И как они решат без передачи информации кто будет стоять, а кто ходить? Если ориентироваться на монетку, то возможны ситуации, когда оба будут стоять или оба ходить. У них нет в кармане квантово-запутанных между собой фотонов для принятия гарантированно противоположных решений.
А заранее договориться — не вариант? О стратегии же они как-то заранее договорились…
В том-то и суть задачи, что не вариант. Иначе было бы слишком просто. ну представьте, что есть два изолированных подразделения спецназа. которые даже не знают друг о друге и в какой-то момент по одному бойцу из каждого десантируют по условиям задачи. Возможности договориться у них, конечно, не будет, но подразумевается, что они знают одно и то же о задании и, соответственно, могут выбрать какую-то оптимальную стратегию.

Где-то там прозвучало условие, что стратегия у них должна быть одинаковая. Но это скорее не условие, а логичное следствие (из теории игр) того, что обмениваться информацией они не могут, и, видимо, должна быть какая-то одна оптимальная стратегия, придерживаясь которой оба «игрока» окажутся в выигрыше.
Ну об этом же вся статья, почитайте.
Если нельзя заранее договорится встретится в точке 0, то ваше решение выглядит почти правильным. Правильно будет: один стоит, а другой ходит.
Ещё раз. Как они решат без передачи информации кто стоит, а кто ходит?
Надо развернуть числовую прямую во второе измерение, и весь десант автоматически окажется в одной точке :)
Можно класть карты под определённым углом:
у нас есть 180 градусов на 100 чисел, можно расположить примерно,
Хотя бы можно класть параллельно/ортогонально (чётное/нечетное)
Непонятно, как вы систему отсчёта донесёте до второго игрока. И как первую выложите.
Ну если не нравятся градусы, можно закрывать соответствующую часть площади карты следующей по величине
А как другой игрок об этом догадается?
Ну если не площадь, то хотя бы ширину, тут уж легче догадаться
А так то, может он вообще ни о чём не догадается, даже если прямо сказать)
Вы бы на месте второго игрока догадались?
Ну мы же мыслим так, якобы что он мыслит также)
Это вы мыслите так. Я, например, если бы вы выложили карту со сдвигом в миллиметр, совершенно не факт, что вообще обратил бы на это внимание.

Напротив сидит землянин, а не ваша копия.
Тут нужна комплексная стратегия, при таком раскладе первый игрок скорее всего обладает наименьшей и наибольшей картой
Так, давайте прекратим войну правок, иначе читатели вообще ничего не поймут)
Окей, тогда 24:25:50. Вы пытаетесь какими-то странными способами обмануть неравенство треугольника.
Нет, я бы не строил треугольники, которые невозможно построить, там были бы нетривиальные случаи, как тут карты 24 и 25 нужно кидать подряд.

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

Может быть у Вас есть решение?
20:30:51
Что такое «нетривиальные случаи»? Где-то 47.7% из случайно взятых троек карточек не удовлетворяют неравенству треугольника.

Для протокола, я вообще считаю, что вы решаете не ту задачу. Я просто обратил внимание на то, что вы даже её решаете неправильно)
Но у нас вообще-то 6 карт. вы 6 чисел назовёте, из которых нельзя хотя бы один треугольник построить?
1, 2, 4, 7, 12, 20 ну да, но хрен оба игрока с такими входными выиграют… Будем строить 6-ти угольники =D Но и тут фигня, поэтому я не понимаю, почему площадь очень сложно, а длины норм, но не всегда построишь
Ну, игрок-то знает только свои три карточки. Так что треугольники.

Шестиугольник тоже не всегда можно) 1, 2, 3, 4, 5, 16.
А что если:
Мы можем положить свою карту сверху/снизу/справа/слева от его и умножить на расположение нашей карты вдоль/поперёк, — уже 8 вариантов, можно дальше углы вводить, как я уже писал. А если можно трогать уже положенные карты, то кодирование упрощается.
Ну, во-первых, у меня почему-то получается 8. Четыре варианта смещения, два варианта поворота. 32, если допустить смещение по диагонали и считать, что поворотов четыре варианта. 64, если допустить повороты по диагонали. Маловато всё равно.

Во-вторых, допустим, вы играете со мной. Я выложил карту чуть слева от вашей и повернул её набок. Угадаете, какое число я имел в виду?)
42?
Я имел в виду 7)
у вас тоже ошибка, вы уже посчитали повороты по диагонали когда получили 32, кроме того 64 вполне достаточно, ведь свои то карты вы знаете.
у вас тоже ошибка, вы уже посчитали повороты по диагонали когда получили 32

Ничего подобного. Когда получил 32, я посчитал повороты на 180 и 270 градусов.
кроме того 64 вполне достаточно, ведь свои то карты вы знаете.

У вас карты 2, 80, 90. У противника — 1, 79, 89. Противник выложил единицу, вы выкладываете двойку. Как вы сообщите ему числом от 1 до 64, что у вас именно 80, и он должен выложить 79 раньше?

И более интересный вопрос: допустим, вы сообщили партнёру информацию о своей следующей карте. А у него карта больше, и следующий ход должны делать вы. Как он сообщит об этом вам?

8 вариантов расположения карты умножить на 4 разных поворота, посчитайте

Я ему говорю у меня 79 или 80, тут то он и призадумается, конечно))

карта симметричная, повернув на 180 будет слабо отличаться
Каким образом вы это ему говорите, если 64 варианта?

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

Засим откланяюсь.
Ну тут вообще никак. Первый ход очевиден, а второй ход логично ожидать от противника. 79 и 80 почти не отличаются, хоть секунды считай, хоть карты верти.
Во, я придумал решение, которое мне нравится, однако Вы его снова забракуете:
Сложить карты с пустым треугольником в центре с отношением сторон соответствующим, где например 100 — это целая длина карты
Телепатически.
А разве все это, включая предложенный в статье метод секунд, не является «меняться информацией между собой»?
Вы закрываете глаза и начинаете выкладывать карты по времени. Условно. Вам не нужны внешние реакции для этого.
Надо усложнить, и дать на всё про всё минуту) Не успели выложить за минуту — проиграли.

Сделаем таймер не на секунду, а на полсекунды — 100 карт выложить успеем.

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

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

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

Первое что пришло в голову это некое кодирование порядком карт на руках и Little endian vs Big endian проблема записи байт в данных во вполне рациональных спецификациях.
92. Нет, ну как, как именно надо думать, чтобы, целясь на ПОЛОВИНУ среднего, сказать «92»?

Наверное, это очень креативный человек :).
Нужно всего лишь играть не на свою победу, а на поражение/усложнение игры для других игроков. Это отдельный кайф — сломать всем стратегию которую они придумали, даже если сам при этом проиграешь.
«Всего лишь», ага. Я и говорю — очень креативный человек должен быть :).
Ну не знаю, я практически в каждой компании в которой мы собирались на настолки такого человека встречал, по моему опыту очень распространенное явление. Да я и сам так иногда делаю. Особенно когда играем не первый раз и я только что выигрывал — выигрывать каждый раз неинтересно и уменьшает удовольствие остальных игроков, поэтому я иногда играю чтобы усложнить игру остальным даже если сам при этом не выиграю почти точно. Но это, конечно, только мой опыт, возможно мне просто так везло.
Есть ещё люди, которые в игре ставят альтернативные цели, например, играя за вора в «Манчкине» не пытаются набрать победные 10 уровней, а воруют у других игроков шмот, который используют исключительно как плату за дальнейшее воровство (цель — украсть всё у всех).
Вот только играть таким альтернативным игрокам потом приходится исключительно друг с другом)
Ну не знаю, опять же из моего опыта это только добавляло интереса. Во-первых нет однозначных фаворитов с которыми неинтересно играть, во-вторых, это добавляет игре жизнености что ли, игроки не пытаются просчитывать всю игру, а начинают играть и наслаждаться. Не то чтобы они раньше такого не делали, но здесь это располагает. Ну и тем, кто не любит считать проще играть становится. У нас от такого подхода одни плюсы были, никто ни разу не жаловался.
Значит, у вас и было «друг с другом». Некоторым детям интересно поиграть с игрушечным самосвалом, некоторым — с его деталями. А вот первым детям со вторыми играть совершенно неинтересно. Мягко говоря.
Загвоздка в том, что Ваши слова легко воспринять так, как будто «таких альтернативных» — меньшинство, и найти компанию — проблема. Не скажу, что опыт показывает строго обратное, но и с такой трактовкой, если бы она прозвучала явно, точно бы не согласился.
Компания компании рознь. Абстрактных людей найти можно. А вот когда друзья не зовут тебя в гости, потому что хотят спокойно поиграть в настолки, а прошлую игру ты им испортил — это уже достаточно неприятно.
НЛО прилетело и опубликовало эту надпись здесь
Ну, например, ниже уже упомянули кингмейкинг.
Когда я понял, что в эту партию манчкина мне никак не выиграть, и решил ради интереса все усилия сосредоточить на том, чтобы выиграл определённый другой игрок, дошло чуть ли не до скандала)
НЛО прилетело и опубликовало эту надпись здесь
Верно. Вы желаете обобщить этот опыт на все возможные случаи?
«Монополия» является значимой причиной семейного насилия в США, но это не повод её запрещать. Так и тут: люди слишком серьёзно воспринимают игру, возможно, её стоит сменить на более несерьёзную, типа «Челюстей», и надеяться, что серьёзность не относится к любому образу взаимодействий.
НЛО прилетело и опубликовало эту надпись здесь
А почему вы думаете, что человек, допускающий возможность нестандартного подхода к игре, всегда одной и той же «альтернативной» стратегии придерживается? Мне это наоборот кажется крайне маловероятным (и никогда не встречалось, если честно). Может, у него клирик и «божественное вмешательство» в рукаве с первого хода припасены, а игроки только успели обрадоваться, что тролль перестал грабить и всех топить…
А почему вы думаете, что я так думаю?

«Нестандартный подход» такого типа ломает баланс. Человек получает удовольствие за счёт того, что лишает удовольствия других, которым этот баланс был важен. Помнится, я в детстве придумал хитрый план: звал маму играть в шашки, а сам играл в поддавки. И, что характерно, всегда выигрывал. До тех пор, пока мама со мной играть не перестала.
«Нестандартный подход» такого типа ломает баланс.
Если баланс можно сломать просто нестандартным подходом, то не такой уж он и хороший там был.
Человек получает удовольствие за счёт того, что лишает удовольствия других, которым этот баланс был важен.
Совсем необязательно. Ты не лишаешь удовольствия других, ты просто находишь удовольствие не в выигрыше, а в отыгрыше. При этом даже добавляя удовольствие сразу для нескольких типов игроков: для тех кто играет не очень, так как мешаешь профи просчитывать все что можно и для собственно профи, потому что им становится интереснее играть. Когда играет компания друзей, а не профессиональные игроки на турнире, то уровень игры у всех почти наверняка разный, а значит если все будут играть исключительно на победу и в игре не правит рандом, то в 9 из 10 случаев будут побеждать одни и те же один-два человека. Какой в этом кайф вообще для всех? Победители итак знают что они сильнее, им неинтересно, слабые игроки итак знают что шансов у них нет а значит и трепыхаться не имеет смысла. А вот игрок с отыгрышем мешает победителям и помогает слабым игрокам тем самым несколько уравнивая шансы. А заодно и показывает слабым игрокам как можно получать удовольствие от игры независимо от победы.
Баланс игр, в которых участвуют более двух игроков и в которых игроки могут более-менее активно взаимодействовать, по определению хрупок. Скажем, если два игрока объединятся, они легко победят третьего. Если игрок действует не рационально, это может подарить лёгкую победу одному из оставшихся игроков. Те, кто из-за этого проиграл, не будет доволен. Тот, кто выиграл, тоже. Тут я, разумеется, говорю об игроках своего склада, которым интересно соревнование и победа.

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

Короче говоря, не надо лезть в чужой монастырь со своим уставом. Любителю отыгрыша нечего делать в партии манчкинов. Хардкорному игроку не стоит лезть к новичкам. Взрослому шахматисту, которому интересно играть в шахматы по правилам, не стоит садиться за доску с ребёнком, которому интереснее менять правила каждый ход.
Например, в Игре Престолов нет ничего хуже Грейджоя пассивно отыгрывающего «свою игру». Не нужно растить такую смену(=
По-моему, такое поведение все-таки из той же оперы, что и кингмейкинг и подобные «криминалити»: невозможно просчитать игру, когда игрок играет не на победу, а ради вымышленных ачивок.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Можно класть карту по отношению к уже положенной сообщая своё следующее число (точнее диапазон):
Сверху/снизу, по бокам/по диагонали, а также крутить её \ / l _, плюс касание/некасание предыдущей карты и это даёт нам 8*4*2=64 варианта,
а нам вполне достаточно и 50-ти диапазонов по два значения
Главное не запороть первый ход)
При стратегии выкладывания карт задержками всё ещё остаётся вопрос выкладывания первой карты. Получается что нужно договориться о точке синхронизации без передачи информации. А это уже задача о двух генералах которая решения не имеет.
Первая уже выложена, это ноль. Вопрос только в том, успеет ли человек обдумать стратегию и включиться в игру с первой секунды. С учётом, что он сегодня уже несколько раз играл — вероятность ненулевая.
— пас
— пас
— пас
— 4
— пас…
Такие игры подошли бы для сериала «Игра Лжецов». Интересно было бы сделать обзор на игры оттуда, кстати.
нужно по очереди досчитать до ста (это примерно половина от участников). Каждый может кричать только одно число один раз. Если сбились или выкрикнули одновременно два голоса — надо начинать с самого начала. Потом выключить фонарь, крикнуть «один» и пойти выяснять, что происходит. Обычно питание удаётся восстановить куда раньше, чем игроки досчитают.
Меня бы у вас сразу забанили как зануду, что портит всем удовольствие. Примерно полторы секунды потребовалось, чтобы найти решение: взяться всем за руки змейкой и просто называть числа по порядку. Второе решение ещё проще: включить телефон в режиме фонарика и передавать кому-то как эстафетную палочку, говорит только тот, кто с фонариком, остальные молчат.
Пока вы договоритесь на 200 человек, среди которых ещё человек 10 со своими светлыми идеями, аниматор как раз успеет найти электрика. Но способ про змейку отличный, я ещё это решение не видел. Думаю, убедить всех будет просто.
Сразу видно программиста и его мутекс. Кстати, включать телефон в режим фонарика необязательно. И вообще это может быть любой предмет. Получил — сказал следующее число — передал другому.
Фонарик, я так понимаю, только для того, чтобы при беглом взгляде было сразу видно, где «эстафетная палочка» прямо сейчас.
1. Я не программист. Свободу мьютексам! Но так-как в роду много железнодорожников, можете считать склонность к жезловой системе наследственной.
2. Какие ещё хорошо видимые издалека в полной темноте предметы у вас обычно с собой?
3. У тех, кто молчит, должна быть вовлечённость в процесс, как вариант — держаться за руки или следить за перемещением светового пятна по залу.
В (2) надо учесть, что такие же предметы есть ещё примерно у 100% людей.
Остальные телефоны скорее будут светиться в режиме браузера или мессенджера, а не фонарика, так что отличить будет легко.
"— Да это как разговаривать преферансом!
— Не, — сказал Ахиллес, — Преферансом — начальный уровень разговорного андромедянского.
— Вистовать на шестерной при детях и скрудлях недопустимо, — заметила Черепаха."
А как же «сталинград»?!
НЛО прилетело и опубликовало эту надпись здесь
Вот сейчас Гитлер обиделся :)
Штирлиц, Мюллер и Гитлер играют в преферанс.
Штирлиц: Сталинград!
Гитлер (хватается за голову): Как? Опять?!
Если «невыкладывание карты» аналог «пас» стратегия элементарна — пасуем до первой карты начиная с 1, считая пасы дальше выкладываем следующую и тд.
В текущем варианте условия нет ничего о том, что игроки не могут посмотреть другие карты из колоды. И нет ничего сильно запрещающего в процессе взятия карт. Тогда решение вполне очевидное, особенно учитывая
И он с большой вероятностью уже пробовал играть в эту игру с другими людьми сегодня.
Первый игрок может взять 3 карты и посмотреть оставшиеся. Если их 97 — значит он и есть первый, после чего он должен перетасовать колоду вслепую. Таким образом первый игрок не узнает достоверный список карт второго игрока. Второй после этого тоже берет себе 3 карты и смотрит оставшиеся. Т.к. он видит, что их 94, то он знает, что он второй. Ещё он знает, что 3 отсутствующие карты — это те, которые у первого.

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

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

Альтернативные варианты стратегий, основанные на неточностях ТЗ и «удобных» интерпретациях фраз:
Есть колода из 100 карт с натуральными числами от 1 до 100, каждого по одному.
Если взять колоду, в которой на одной карте натуральные числа от 1 до 100 в порядке возрастания, а на остальных картах натуральные числа вообще отсутствуют, то порядок выкладывания может быть произвольным: числа на картах будут в порядке возрастания в любом случае (если эти числа вообще там будут). Скользкий момент — сравнение пустой карты и карты с числами. Далее будут рассматриваться варианты, когда на каждой карте одно число.
Вы и второй игрок берёте по 3 карты из этой колоды.
Порядок взятия карт однозначно не определен. Если принимается решение с отсчитыванием секунд, то можно аналогичным образом брать колоду, вытаскивать из неё карту, возвращать колоду на место через N секунд, где N — число на взятой карте. Тогда все числа числа на взятых картах будут известны обоим участникам, что приводит к тривиальному выкладыванию карт с целью победы.
Задача — одну за одной выложить их на стол в порядке возрастания.
Если выложить 6 карт одну за одной (т.е. по очереди) в столбик (т.е. одну на одну), то это можно считать порядком возрастания. Высоты столбика.
Еще можно погнуть карты так, чтобы (условно) лежащая на столе карта образовывала горбик. Тогда эти горбики можно выложить «один за одним» (т.е. сначала один, потом второй, потом третий и т.д.) так, чтобы они лежали «в порядке возрастания» высоты горбика, если смотреть с какой-то одной стороны.
Но нельзя меняться информацией между собой и показывать карту до момента, пока она не будет положена на стол.
В самом первом решении уже использовалось то, что под «меняться информацией между собой» не попадает односторонняя коммуникация без подтверждения доставки сообщения.
То, что один игрок не «показал карту» другому игроку не означает, что другой игрок не мог силой забрать карту, посмотреть и отдать обратно (это если рассматривать сильных игроков).
Если в конце игры 6 карт выложены правильно, оба игрока выигрывают.
Используется понятие «конец игры», но из условий выше не следует, что игра заканчивается в момент выкладывания последней карты на стол. На этом можно попробовать сыграть (сделать сортировку карт на столе после выкладывания последней карты, но перед концом игры).
Еще критерий «правильно» основывается, скорее всего, на предложении с фразой «одну за одной», которое не такое уже и однозначное.
В момент, когда первая же карта ложится неправильно — оба игрока проигрывают.
Критерий «неправильности» тоже явным и однозначным образом не определён. Могут быть ситуации «правильно», «неправильно», «а кто его знает, правильно или не правильно» (тут уж как карта ляжет). В таком случае достаточно перевести игровую ситуацию из категории «неправильная» в категорию «а кто его знает», после чего постоянно выкладывать карты с обработкой вида «а кто его знает» и с сортировкой по нужному ключу перед концом игры.
Ваша задача — выиграть в этой игре.
Выиграть может быть невозможно, если задача оппонента — проиграть, и он целенаправленно идёт к этому. Это, кстати, условиям задачи совсем уж явно противоречить не будет.
С вами играет человек
О, это вообще отлично. У человека, если он играет, практически со стопроцентной вероятностью есть пульс. Его можно использовать как более точное средство синхронизации отсчётов вместо вычисления примерного количества прошедших секунд.
«В текущем варианте условия нет ничего о том, что игроки не могут посмотреть другие карты из колоды. И нет ничего сильно запрещающего в процессе взятия карт.»
— есть общая система умолчаний и сокращений, подразумевающая, что это запрещено. Точно так же я не описывал, что карты берутся в начале игры лицом к себе, что они не двусторонние и так далее. А всё остальное прекрасно )
Именно на такой случай я писал эту статью.
Видимо, в первый раз я бы проиграл в эту игру.
Я рассуждал именно так, как вы описали в рациональном варианте. Но после построения всей цепочки вдруг подумал ну 100 это же много, партнер устанет ждать и переключится на другую стратегию. В итоге первая секунда у меня предназначалась на первый десяток карт, во вторую выкладывал бы карты с 20 по 29 и т.д.

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

P.S. Довольно давно читал про задачу о мудрецах и колпаках. Там даже не одна задача, а довольно много. Я читал разборы Мартина Гарднера, там было и про то, как квантовать время, и с большим количеством мудрецов. По-моему, ваша задача — вариация на тему. Довольно интересная, так как в нее просто начать играть — достаточно любой колоды карт и договоренности, как считается масть.
Если убрать предположение о том, что игроки будут считать секунды, и добавить возможность ходить по очереди и передвигать чужие карты на столе, то можно выработать алгоритм, когда игроки будут перекладывать свою карту перед чужой «100 — N — R» раз, где R — ранг карты, а N — количество оставшихся в руке карт.

Например, у меня есть карты H1 = 10, H2 = 50 и H3 = 90.
У оппонента карты O1 = 20, O2 = 40 и O3 = 95.
Я выбираю минимальную карту H1 и кладу на стол.
Оппонент кладёт карту O1 перед моей H1 (это действие необходимо, и говорит мне о том, что O1 <= 97).
Я снова переклаываю H1 перед O1, сообщая ему, что H1 <= 96.
Таким образом мы поочерёдно меняем местами H1 и O1 суммарно ещё 76 раз. К этому моменту H1 окажется перед O1, что скажет моему оппоненту, что H1 <= 20.
На этот раз вместо перестановки H1 и O1 оппонент кладёт новую карту O2, что говорит мне о том, что O1 = 20.
Я кладу H2 перед O2, давая понять оппоненту, что H2 <= 98.
Мы снова поочерёдно меняем местами H2 и O2 49 раз, и последний ход оппонента говорит мне о том, что O2 < 50.
Это означает, что я должен положить H3.
Оппонент кладёт O3 перед H3. Это значит, что O3 <= 99.
Мы перекладываем карты еще 5 раз, после чего мой оппонент понимает, что H3 < 95 и объявляет о завершении игры.
Осталось донести этот фреймворк остальным игрокам.
И вот к вопросу о выключенном свете на игротеке — вы не планируете возить Shadows in the Forest?
Вот до этого комментария не планировали. Сейчас ещё раз подумаем, спасибо.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий