задачка, математическое
Feb. 10th, 2010 03:34 pmТюремщик играет с двумя заключенными в следующую игру. Во дворе тюрьмы на земля нарисована доска размером 8x8 клеток, и в центре каждой клетки либо лежит, либо не лежит камешек. Сначала во двор выходит первый заключенный, и тюремщик указывает ему на какую-то клетку доски. Заключенный в ответ должен выбрать какую-то клетку, на свой выбор, и изменить ее состояние: либо убрать камень из центра, если он там был, либо положить в центр, если его там не было.
Потом первого заключенного уводят, и выводят второго. Он должен посмотреть на доску и угадать, на какую клетку указал тюремщик первому заключенному.
Заключенные могут заранее договориться о стратегии, но до того, как выводят первого, они не знают, как выглядит доска, и после этого любое общение между ними запрещено. Могут ли заключенные так договориться действовать, чтобы второй всегда мог правильно отгадать выбранную клетку?
Update: я раскрываю правильные решения - их штук шесть набралось за прошедшие пять часов, первыми были buddha239 и plakhov. Не заглядывайте в комменты, если хотите сами подумать.
Потом первого заключенного уводят, и выводят второго. Он должен посмотреть на доску и угадать, на какую клетку указал тюремщик первому заключенному.
Заключенные могут заранее договориться о стратегии, но до того, как выводят первого, они не знают, как выглядит доска, и после этого любое общение между ними запрещено. Могут ли заключенные так договориться действовать, чтобы второй всегда мог правильно отгадать выбранную клетку?
Update: я раскрываю правильные решения - их штук шесть набралось за прошедшие пять часов, первыми были buddha239 и plakhov. Не заглядывайте в комменты, если хотите сами подумать.
no subject
Date: 2010-02-10 01:44 pm (UTC)no subject
Date: 2010-02-10 01:46 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2010-02-10 01:47 pm (UTC)no subject
Date: 2010-02-10 01:59 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:ряды
From:no subject
Date: 2010-02-10 01:49 pm (UTC)no subject
Date: 2010-02-10 01:50 pm (UTC)no subject
Date: 2010-02-10 01:52 pm (UTC)no subject
Date: 2010-02-10 01:57 pm (UTC)no subject
Date: 2010-02-10 01:58 pm (UTC)no subject
Date: 2010-02-10 01:58 pm (UTC)no subject
Date: 2010-02-10 02:03 pm (UTC)по-моему, это другая задача.
http://avva.livejournal.com/1743110.html
это тоже другая задача :)
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-02-10 02:00 pm (UTC)no subject
Date: 2010-02-10 02:03 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2010-02-10 02:17 pm (UTC)И по "конечному состоянию" определяют указанную клетку.
no subject
Date: 2010-02-10 02:22 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2010-02-10 02:20 pm (UTC)Если тюремщик указал на клетку с камнем, то первый заключенный просто берет первую попавшуюся (другую) клетку с камнем и перекладывает этот камень на первую клетку. Второй заключенный элементарно отгадывает клетку, на которой лежит два камня (надеюсь, это не противоречит условиям? ведь там не сказано, что первый заключенный должен убрать камень из центра, но без права перекладывания на другую клетку).
Если же тюремщик указал на клетку без камня, то просто не вижу шансов для первого заключенного переложить камень так, чтоб второй заключенный догадался. Интересно будет узнать правильный ответ.
no subject
Date: 2010-02-10 02:23 pm (UTC)(no subject)
From:no subject
Date: 2010-02-10 02:30 pm (UTC)no subject
Date: 2010-02-10 02:34 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2010-02-10 02:37 pm (UTC)no subject
Date: 2010-02-10 02:38 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-02-10 02:40 pm (UTC)no subject
Date: 2010-02-10 02:44 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-02-10 02:45 pm (UTC)no subject
Date: 2010-02-10 02:58 pm (UTC)no subject
Date: 2010-02-10 05:08 pm (UTC)no subject
Date: 2010-02-10 02:59 pm (UTC)no subject
Date: 2010-02-10 03:04 pm (UTC)Доска на ЗЕМЛЕ.Камень оставляет след на земле.А дальше надо просто изначально договориться,что надо делать ОДНО И ТОЖЕ к выбранной тюремщиком клетке.
Сумбурно немного,но Вы меня поняли.Надеюсь.
no subject
Date: 2010-02-10 03:25 pm (UTC)no subject
Date: 2010-02-10 03:05 pm (UTC)приходит второй, смотрит на доску, поворачивает ее в уме, и смотрит, инвертировался ли где-нибудь камень.
что-то я сказал, пойду почерчу на бумажке
no subject
Date: 2010-02-10 03:08 pm (UTC)no subject
Date: 2010-02-10 03:06 pm (UTC)Думал минут на 5 дольше, чем нужно, т.к. не заметил, что клетка (0:0) нас спасает, если уже и так равен.
no subject
Date: 2010-02-10 03:10 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-02-10 03:07 pm (UTC)и зачем я сюда полез? ))
как раз Солженицына читаю
почитай Фрида, он какой-то неотрывабельный
no subject
Date: 2010-02-10 03:11 pm (UTC)no subject
Date: 2010-02-10 03:30 pm (UTC)no subject
Date: 2010-02-10 03:40 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From: (Anonymous) - Date: 2010-03-23 06:59 pm (UTC) - Expand(no subject)
From:(no subject)
From:no subject
Date: 2010-02-10 03:46 pm (UTC)no subject
Date: 2010-02-10 03:48 pm (UTC)(no subject)
From:no subject
Date: 2010-02-10 04:18 pm (UTC)первый xor-ит порядковые номера клеток, где есть камни в исходной позиции (число S), и меняет клетку с порядковым номером S xor X
второй xor-ит номера клеток в новой позиции и получает X.
вроде так :)
no subject
Date: 2010-02-10 06:09 pm (UTC)no subject
Date: 2010-02-10 04:45 pm (UTC)Геометрия доски значения не имеет; есть просто 64 клетки, каждая из которых может находиться в одном из двух состояний.
Поскольку второй видит только одно из возможных состояний доски, надо разбить всё множество состояний на 64 класса, приписав каждому классу загаданное поле. При этом надо разбить так, чтобы из любого состояния можно было перейти (путем изменения состояния одной клетки) к состоянию из любого класса.
Для наглядности можно представить всё множество состояний доски в виде 64-мерного гиперкуба, где вершины -- состояния, а ребра символизируют возможность перейти из одного состояния в другое. Тогда задача формулируется следующим образом: раскрасить вершины гиперкуба в 64 цвета так, чтобы у каждой вершины все соседи были разных цветов. Для удобства можно обозначать вершины последовательностями из нулей и единиц длины 64.
Теперь решение.
Будем действовать по индукции -- доказывать для размерности гиперкуба 2^n для всех n >= 1.
Для n=1 раскраска очевидна: 00 и 01 имеют цвет A, 10 и 11 -- цвет B.
Идея индуктивного перехода в том, чтобы представить цвет более длинной последовательности в виде суперпозиции цветов составляющих ее более коротких подпоследовательностей. Т.е. при переходе от n=1 к n=2 для последовательности 0011 ее цвет C(0011) будет C(00)C(11) = AB. Причем возможно четыре разных цвета: AA, AB, BA и BB. Восстановить строгое доказательства, думаю, уже несложно.
Теперь осталось выразить написанное выше в виде конкретного алгоритма, чтобы можно было "посчитать в уме". Но это я уже поленился сделать.
no subject
Date: 2010-02-10 04:48 pm (UTC)Делим множество из 64 клеток напополам на два подмножества: А1={1-32} и А2={33-64}. Первым битом считаем чётность количества камней в множестве А1. Чтобы передать бит, мы должны либо сохранить чётность А1 (изменить множество А2), либо изменить чётность А1 (изменить множество А1). Выбираем нужное множество.
Делим каждое из подмножеств А1 и А2 напополам (В1={1-16}, В2={17-32}, В3={33-48}, В4={49-64}), объединяем попарно с чередованием (В13=В1+В3, В24=В2+В4). Вторым битом считаем чётность множества В13. В соответствии с этим выбираем подмножество В1, В2, В3 или В4 так, чтобы и В13 и А1 оказались нужной чётности.
Для третьего бита процедура повторяется с подмножествами размера 8, четвёртого - 4, пятого - 2, и шестого - 1, то есть последним шагом разбиения и выбора мы выбираем именно клетку.
Ну, а следующий заключённый просто считает чётности соответствующих множеств :-)
Хотел записать множества в виде формул, но запутался с "показательством" возможности выбрать такую точку, чтобы все нужные множества были нужной чётности. В словесном виде это более-менее понятно...
no subject
Date: 2010-02-10 06:08 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-02-10 05:06 pm (UTC)всего клеток: 64
т.е. на входе у нас 64битное число, тюремщик выбирает бит, надо задача сводится к изменению входного числа посредством изменения одного бита, чтобы он принадлежал одному из 64 классов.
т.е. требуется разделить все 64битные числа на 64 класса, чтобы были переходы из любого класса в любой, изменением одного бита. если представить это в виде графа, то надо покрасить вершины так, чтобы из каждой вершины были видны все остальные цвета. дальше пока непонятно, как эти классы строить...
no subject
Date: 2010-02-11 08:35 am (UTC)Только, кажется, более лобовое решение, представленное другими комментаторами (через xor по правильно выбранным подмножествам), получились и нагляднее, и эффективнее с точки зрения практического применения.
Тем не менее, видится изоморфизм между обоими типами решений. ;)
(no subject)
From: