Основы программирования с Java. Тимур Машнин

Читать онлайн книгу.

Основы программирования с Java - Тимур Машнин


Скачать книгу
окне.

      Таким образом, вы можете видеть, что есть в общей сложности 8 решений, как обсуждалось ранее.

      Давайте теперь посмотрим на 3D-версию задачи. Задача в основном такая же, как и раньше, за исключением того, что у вас есть 3x3x3 куб как кубик Рубика и с квадратным яблоком в каждой ячейке.

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

      Подобно тому, что у нас было раньше, червь прячется в середине, и мы должны следовать тем же правилам.

      То есть, в начале, есть 6 возможных ходов, вместо 4, как в случае 2D, потому что в дополнение к 4 ячейкам на сторонах в среднем слое, червь также может перейти к средней ячейке на переднем плане и средней ячейке на заднем плане.

      И теперь вопрос в том, может ли червь по-прежнему съесть все 27 яблок.

      Помните, что червь не может вернуться к любым тем ячейкам, которые были захвачены ранее.

      Давайте теперь вернемся и посмотрим на 2D-задачу немного по-другому. Некоторые из красных яблок заменены на зеленые яблоки, и они расположены по такой схеме.

      Если червь опять должен начать с середины, следуя тем же правилам, это та же задача, как и раньше, независимо от цвета яблок, и у нас есть те же 8 решений, как и в предыдущем случае 2D.

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

      Подсказка в том, что надо посмотреть, как меняется цвет, когда червь переходит из одного яблока в другое.

      Давайте теперь вернемся к задаче квадратных яблок 3D и будем чередовать цвета яблок, как мы сделали это в 2D случае.

      Как и в предыдущем 3D случае червь прячется в середине.

      Так что это все та же 3D задача, как и раньше, хотя цвета некоторых из яблок были изменены.

      Теперь используйте то, что вы наблюдали в случае 2D, и попытайтесь придумать быстрое решение этой задачи.

      Вопросы

      Задача

      Может ли червь съесть все 27 яблок, если он начинает от центра куба?

      1.      Да

      2.      Нет

      Ответ: 2.

      Задача

      Может ли червь съесть все 27 яблок, если он начинается с одного из углов куба?

      1.      Да

      2.      Нет

      Ответ: 1.

      Из задачи 2D квадратных яблок, мы можем наблюдать, что червь сможет съесть все яблоки, если он начинает с ячейки с красным яблоком. Применяя то же правило в задаче квадратных яблок 3D, мы можем быстро сказать, что червь не сможет съесть все яблоки, если он начинает из центра куба, в котором содержится зеленое яблоко. Аналогичным образом можно быстро сказать, что червь может съесть все яблоки, если он начинает с угла куба, который содержит красное яблоко.

      Важность представления задачи

      В задаче 2D квадратных яблок, используя красное и зеленое представления яблок, вы увидите, что есть 5 красных яблок и 4 зеленых яблока.

      Каждое движение будет чередовать яблоки


Скачать книгу