Вкаждой клетке 4*4 стоит целое число от 1 до 16 (каждое по разу).за ход можно указать любой набор клеток и узнать ,какие в них числа(без уточнения,какую клетку какое число занимает).можно ли гарантированно узнать,какие числа где стоят, а) (4 ) за 4 хода; б) (5 ) за 3 хода?

magic0000 magic0000    2   21.08.2019 17:40    0

Ответы
12VikaSmirnova34 12VikaSmirnova34  20.08.2020 13:16
А) да
б) нет.

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