Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Lisp
Перезагрузить страницу Найти такую последовательность хода конем, при которой он становится на каждую клетку
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Sh_07 Sh_07 вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.04.2007
По умолчанию Найти такую последовательность хода конем, при которой он становится на каждую клетку - 01.05.2007, 15:46

Задача имеет следующую формулировку: конь может перемещаться на 2 поля по горизонтали или вертикали и на одно поле в перпендикулярном направлении. При этом он не должен выйти за пределы шахматной доски, размер которой 3 Х 3. Найти такую последовательность хода конем, при которой он становится на каждую клетку только 1 раз.
Заранее спасибо.
Ответить с цитированием
  (#2 (permalink)) Старый
VH VH вне форума
Member
 
Сообщений: 781
Сказал(а) спасибо: 0
Поблагодарили 11 раз(а) в 10 сообщениях
Регистрация: 29.06.2006
По умолчанию 01.05.2007, 18:39

В поле 3x3 нельзя из любой другой клетки ходом коня попасть в центральную, так же как и из центральной в любую другую. Нехорошо предлагать нерешаемую в принципе задачу.
Ответить с цитированием
  (#3 (permalink)) Старый
Sh_07 Sh_07 вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.04.2007
По умолчанию 02.05.2007, 20:26

А в центральную клетку не нужно попадать
Ответить с цитированием
  (#4 (permalink)) Старый
Sh_07 Sh_07 вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.04.2007
По умолчанию 03.05.2007, 20:11

Алло!!! Просьба о помощи остается в силе
Ответить с цитированием
  (#5 (permalink)) Старый
VH VH вне форума
Member
 
Сообщений: 781
Сказал(а) спасибо: 0
Поблагодарили 11 раз(а) в 10 сообщениях
Регистрация: 29.06.2006
По умолчанию 07.05.2007, 17:32

Нумерация клеток доски:
Код:
1 2 3
8   4
7 6 5
Основа: Хювёнен-Сеппянен "Мир Лиспа" т.2 стр.74-79
Код:
(setq *productions*
  (list
   '(1 4)  '(1 6)
   '(2 5)  '(2 7)
   '(3 6)  '(3 8)
   '(4 1)  '(4 7)
   '(5 2)  '(5 8)
   '(6 1)  '(6 3)
   '(7 2)  '(7 4)
   '(8 3)  '(8 5)))
Код:
(defun ROUTE (start finish order)
  (search finish (applied start) (list start) order))
Код:
(defun APPLIED (situation)
  (mapcan
  (function
   (lambda (rule)
    (if (eq situation (car rule))
     (list rule)
     nil)))
   *productions*))
Код:
(defun SEARCH (finish plan solution order)
  (cond
   ((null plan) nil)
   ((eq finish (second (car plan)))
    (reverse (cons finish solution)))
   ((member (second (car plan)) solution)
    (SEARCH finish (cdr plan) solution order))
   ((SEARCH finish (funcall order plan) (cons (second (car plan)) solution) order))
   (T
    (SEARCH finish (cdr plan) solution order))))
Код:
(defun IN-DEPTH (plan)
  (append (applied (second (car plan))) (cdr plan)))
Код:
(defun IN-BREADTH (plan)
  (append (cdr plan) (applied (second (car plan)))))
> (route '1 '6 'IN-DEPTH)
(1 4 7 2 5 8 3 6)
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите возможно ли найти такую программу agent24 Вопросы начинающих программистов 0 17.09.2011 22:02
Найти последовательность действий, при котором в меньшем кувшине останется 1 литр вод susuwatari Lisp 3 29.11.2010 10:54
сгорела мать Vaio PCG- GRV 550. Где найти такую? Куплю RX4 Ремонт ноутбуков 4 16.06.2010 23:26
Как найти наибольшую общую последовательность для двух числовых массивов viktorr C++ Builder 4 22.05.2010 18:10
Как найти полную дорожку к папке, в которой находится исполняемый файл typic Visual C++ 5 14.12.2006 00:33
ПОМОГИТЕ!!!! Обход доски конем RAMeo Prolog 16 13.01.2006 16:31
Как в масиве найти нужную последовательность Rider Вопросы начинающих программистов 3 24.05.2005 18:52
Где найти алгоритм хода компьютера игры "Балда" N0RtAn Вопросы начинающих программистов 15 11.05.2005 13:05
Как в таблице Excel задать первую пустую клетку Mixriutka Visual Basic 2 08.12.2004 16:07
Требуется найти заданную последовательность в строке Pitch Lisp 1 10.10.2004 15:32
Как найти симметричную последовательность на С++ axus Вопросы начинающих программистов 4 28.12.2003 16:50
Где найти ссылку на тему, в которой описано как обрабатывать сообщения Windows andrey_pst Delphi 0 20.10.2002 20:13



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов