В каждой клетке 4*4 стоит целое число от 1 до 16 (каждое по разу).За ход можно указать...

0 голосов
38 просмотров

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


Математика (50 баллов) | 38 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

А) да
б) нет.

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

(148k баллов)
0

спс

0

Добрый день!

0

Что-то я не пойму никак, как , все-таки, все числа расставить. Предположим, наша матрица изначально такая по рядам: 16 -13-10-9; 7-14-12-11; 8-6-15-3; 5-1-2-4

0

Для решения задачи мы не знаем, конечно, где какие числа. 1 шаг. Делим поле пополам и запрашиваем левую половину. Там числа - 16,13,5,1,8,6,7,14 (мы точно не знаем в какой ячейке какое число). Следовательно, в правой половине остались числа - 10,9,12,11,15,3,

0

2 шаг. Запрашиваем данные из первого столбца матрицы - 16, 7, 8, 5. Следовательно, во втором столбце - 13, 14 ,6 , 1

0

3 шаг. Запрашиваем данные в третьем столбце - 10, 12 , 15 ,3, следовательно, в четвертом остались - 9 , 11 , 3, 4

0

три шага мы использовали, теперь знаем в каком столбце какие цифры находятся, но не знаем в какой клетке какая. Т.е, за 3 шага не ответили на вопрос задачи. Теперь на 4 шаге можно запросить 1 строку - 16, 13 ,10 ,9, но мы все равно не будем знать, что остальными тремя строками, а вот если еще запросить строку номер 3, тогда можно точно расставить числа. Но это уже 5 шагов, а вы говорите, что за 4 шага можно - где я неправа?

0

На втором шаге вы можете спросить про первый столбец и про третий столбец одновременно. Вам скажут, что там 16, 7, 8, 5, 10, 12, 15, 3. Но вы-то уже знаете, какое число в какой половине находится, значит, знаете столбец для каждого числа. Итого за два вопроса определили столбец. Так как столбцы и строки ничем не отличаются, то за следующие два вопроса точно так же можно узнать и строки.

0

Поняла - запрашивать мы же можем разные наборы клеток, так что можно сразу запросить на шаге 2 данные из столбца 1 и 3, а на 3м шаге из строки 1 и 3, но мы все еще не знаем 2 и 4 строки, т..е. 4м шагом запрашиваем либо 2ю, либо 4ю строку. Итого - за 4 шага все точно ясно

0

Немного не так. Если вы на третьем шаге спросите 1 и 3 строку, а на четвертом вторую или четвёртую, то как определить, в какой строке число - в первой или третьей? На самом деле, можно на четвертом шаге спросить, например, о первой и второй.