Задачка с кредитными карточками

Логические задачи

Модераторы: Азарапетыч, Администрация

Юляша
Популярный автор
Популярный автор
Сообщения: 3355
Зарегистрирован: 15 янв 2009, 12:32
Пол: Женский

Re: Задачка с кредитными карточками

Сообщение Юляша »

Инна писал(а):Все то же самое будет при любом N.
Если в таблице Дендра по две невыбитые клетки не только в каждом столбике, но и в каждой строке, то легко находится дуальный цикл.
Если есть строка с одной невыбитой клеткой, вычеркнув ее и соответствующий столбик, спустимся на шаг индукции.
Угу, хотела написать то же самое, только подробнее). Надо только еще упомянуть, что при N=2 задача заведомо не имеет решения - карта блокируется после первой же попытки.
Нас двое - я и папа
И погромче нас были витии Да не сделали пользы пером. Дураков не убавим в России, А на умных тоску наведем.

Юляша
Популярный автор
Популярный автор
Сообщения: 3355
Зарегистрирован: 15 янв 2009, 12:32
Пол: Женский

Re: Задачка с кредитными карточками

Сообщение Юляша »

Все, доказательство проверено, я даже набрала его, но случайно не сохранила(.

Есть еще одна тонкость, нужная, чтобы распространить его на случай типа

+++-
+--+
-+-+
--++

(+ - допустимая клетка, - - недопустимая)

но эта проблема решаема.

Я не исключаю, что в исходной задаче есть секретный подвох, позволяющий-таки обойти заявленные ограничения, но при формальной постановке ("сферический конь в вакууме") решения точно не существует.
Нас двое - я и папа
И погромче нас были витии Да не сделали пользы пером. Дураков не убавим в России, А на умных тоску наведем.

Аватара пользователя
St_Angelo
Белинский по натуре
Белинский по натуре
Сообщения: 43
Зарегистрирован: 30 янв 2006, 15:01
Пол: Мужской
Откуда: Казань
Контактная информация:

Re: Задачка с кредитными карточками

Сообщение St_Angelo »

Юляша писал(а): Я не исключаю, что в исходной задаче есть секретный подвох, позволяющий-таки обойти заявленные ограничения, но при формальной постановке ("сферический конь в вакууме") решения точно не существует.
Подвоха нет, т.к. задачку придумали в башорге. Кто-то написал, что у его жены было три карты и 3 пин-кода перепутанные. Эту задачку легко все решили. Потом кто-то вздумал усложнить и добавил еще по одной карте и пин-коду, но условия блокировки (2 попытки) остались прежними. Спустя некоторое время несколько людей "решили" эту задачу, но решения их неверны, хотя они этого не знают :)

Юляша
Популярный автор
Популярный автор
Сообщения: 3355
Зарегистрирован: 15 янв 2009, 12:32
Пол: Женский

Re: Задачка с кредитными карточками

Сообщение Юляша »

Формальное доказательство

Задача.

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

Ответ.

Нет, это невозможно.

Доказательство.

Обозначим карты буквами (A, B, C и т.д.), а пин-коды - цифрами (1, 2, 3 и т.д.)

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

Видно, что для матрицы 2х2 решения не существует. Существуют ровно два возможных соответствия пин-кодов (A1+B2 или B1+A2), любая попытка может оказаться ошибочной, после чего карта немедленно блокируется.

Пусть для N=k решения не существует. Докажем, что для N=k+1 решение также невозможно.

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

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

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

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

Аватара пользователя
team55
Популярный автор
Популярный автор
Сообщения: 1089
Зарегистрирован: 18 апр 2006, 16:49

Re: Задачка с кредитными карточками

Сообщение team55 »

Юляша писал(а):Формальное доказательство

Задача.

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

Ответ.

Нет, это невозможно.

Доказательство...
Доказательство наверняка не работает при N>9999 <пинкоды четырёхзначные :)>

Ответить

Вернуться в «Задачки»