Ваш браузер устарел, поэтому сайт может отображаться некорректно. Обновите ваш браузер для повышения уровня безопасности, скорости и комфорта использования этого сайта.
Обновить браузер

Логическая головоломка недели: игра «Морской бой»

Тебя ждет веселье: надо уместить на поле морского боя максимальное число кораблей.

27 мая 2021Обсудить

Напоминаем, что такое «Морской бой» для тех, кто в танке (поэтому ни разу не бывал на флоте). Классическая игра предполагает, что ты начертил поле 10х10 клеток и разместил в нем 10 кораблей. Один четырехклеточный, два трехклеточных, три двухклеточных и четыре одноклеточных (как амеба).

Логическая головоломка недели: игра «Морской бой»

Задача

Теперь представь, что в адмиралтействе перепутали накладные. На поле морского боя прислали кораблей в два раза больше, чем обычно.

8 кораблей по одной клетке, 6 по 2 клетки, 4 по 3 клетки и два 4-клеточных.

Вопрос

Уместится ли удвоенное число кораблей на стандартном поле со стандартными правилами расстановки (то есть суда не будут соприкасаться друг с дружкой)?

Решать разрешено любым методом: или произвести математические расчеты, или просто взять ручку и начать перебирать варианты.

Ответ будет дан в самом конце статьи. Но только тем из читателей, кто хорошо себя вел.

Логическая головоломка недели: игра «Морской бой»
Логическая головоломка недели: игра «Морской бой»

Ответ

Математически можно себе представить масштабы эскадры. Каждое судно занимает не только свои клетки, но и отнимает несколько соседних, чтобы не соприкасаться с другими кораблями. Назовем эти промежуточные клетки «личным пространством».

На поле у нас 10 столбцов и 10 строк. То есть 100 клеток, которые могут занимать корабли. А вот личное пространство у каждого корабля добавляется лишь с двух сторон — например, справа и снизу. Так как другие две стороны — это личное пространство уже другого корабля-соседа (это очень важно!).

Посмотри. 1-клеточный корабль отнимает 4 клетки, 2-клеточный — 6 клеток, 3-клеточный — 8 клеток, 4-клеточный — 10 клеток.

(8*4)+(6*6)+(4*8)+(2*10)=120. Итого для удвоенной эскадры понадобится 120 клеток. Но это еще не все…

Логическая головоломка недели: игра «Морской бой»
Корабль со своим личным пространством

Так как личное пространство можно добавить справа и снизу к крайнему кораблю, и оно может вылезти за пределы поля, то у нас по факту поле не 10 на 10 клеток, а 11 на 11. Ура, в нашем распоряжении 121 клетка! А надо 120. Неужели задача решена и останется даже одна лишняя клетка?

Нет. Запас в одну клетку оказывается слишком мал для того, чтобы скомбинировать строй из кораблей разной длины с четными и нечетными сторонами. Что и демонстрирует картинка с максимально возможным наполнением:

Логическая головоломка недели: игра «Морской бой»

Нам не хватило места буквально на один одноклеточный кораблик! Удвоенная эскадра целиком на поле не поместилась. Но адмиралтейство было близко к успеху, это надо признать.

Подписываясь на рассылку вы принимаете условия пользовательского соглашения