miaamkom1
15.12.2020 01:46

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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
dfghjkghjkl
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 ходов не хватит.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота