Мы продолжаем знакомство с гениальным алгоритмом X Дональда Кнута - Dancing Links. На этом уроке мы доработает функции AddRow() и Dance() в классе Dance(). Так же реализуем функции Cover/Uncover().
Дата отправки отчёта:
28 июня 2017 г.
Задание выполнено: за
30 мин.
Чему научился:
полностью написал алгоритм Х
Что было сложным:
ничего
Комментарии:
есть 2 вопроса: 1. переменная step нужна для каких-то проверок? так как и без неё всё отлично работает. 2. если на очередном шаге у нас получается header у которого size = 0, то нам нет смысла продолжать рекурсию и нужно вернуться на шаг назад, этого нет в текущей реализации алгоритма. Вопрос: я правильно рассуждаю? если да то как в рекурсии вернуться предыдущий уровень? return? он переместит нас на предыдущий уровень или вообще выбросит из рекурсии?
step используется при сохранении ответов. Впрочем, мы для этого использовали стек. В любом случае - очень помогает step - знать, на каком уровне рекурсии находишься. Но если программа уже полностью написана, то для оптимизации можно его убрать.
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: Реализовывать алгоритм cell.row = row;
headers[x].InsertUp(cell);
headers[x].size++;
Вместо InsertUp было написано InsertLeft. И это было ошибкой :(
Программа пытается найти еще несколько вариантов. Но во втором случае она не указала 5 (это фигура E). И мы бы получили полностью собранную фигуру. В третьем случае ответ неверный полностью, так как при выбранных трех фигурах никак нельзя поставить четвертую.
Думаю, что неправильные ответы получаются, так как мы не откатываемся до нужного состояния при первых неправильных ответах. Нужно сделать более подробную трассировку работы программы.
Научился: Пытаюсь разобраться как работает алгоритм Трудности: Пока все непросто Все получилось. Идут след в след. В противном случае будет уже не выбраться.