В каждой клетке 4*4 стоит целое число от 1 до 16 (каждое по разу).За ход можно указать любой набор клеток и узнать ,какие в них числа(без уточнения,какую клетку какое число занимает).Можно ли гарантированно узнать,какие числа г...
В каждой клетке 4*4 стоит целое число от 1 до 16 (каждое по разу).За ход можно указать любой набор клеток и узнать ,какие в них числа(без уточнения,какую клетку какое число занимает).Можно ли гарантированно узнать,какие числа где стоят,
а) (4 балла) за 4 хода;
б) (5 баллов) за 3 хода?
Ответ(ы) на вопрос:
Гость
а) да
б) нет.
Решение.
а) занумеруем ячейки цифрами от 0000 до 1111 в двоичной системе счисления (т.е. 0000, 0001, 0010, ...). На первом ходе спросим о всех ячейках, у которых на 1 месте стоит 1, на втором - на втором месте, на третьем - на третьем месте, на четвертом - на четвертом месте. На i-м шаге мы узнаем значение цифры на i-м месте в номере ячейки любого интересующего нас числа (например, если 11 назвали в первый и четвёртый раз, то оно записано в ячейку номер 1001 = 9).
б) из пункта а уже очевидно, что нельзя определить положения всех чисел за три хода: на каждый адрес ячейки нужно 4 бита информации, а каждый ответ да/нет даёт не более 1 бита.
Тоже самое, но другими словами: на каждом шаге делим все клетки на две части (возможно, неравные) и узнаём, какие числа есть в каждой из них. Пусть после каждого такого шага меньшая часть выкидывается, и всё продолжается с большей частью (если части равны, то выкидывается любая). На каждом шаге размер интересующей нас части уменьшается не более, чем в 2 раза, тогда после 3 шагов в неё останется не менее, чем 16/8 = 2 числа, положение которых точно установить невозможно. Значит, 3 ходов не хватит.
Не нашли ответ?
Похожие вопросы