Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Lisp
Перезагрузить страницу На доске 4х4 расставить 4 слона так, чтобы они все находились не под ударом друг друг
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
VNataliaV VNataliaV вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.05.2006
По умолчанию На доске 4х4 расставить 4 слона так, чтобы они все находились не под ударом друг друг - 16.05.2006, 01:24

Народ! Очень нужна помощь.
Помогите решить задачку:
На доске 4х4 расставить 4 слона так, чтобы они все находились
не под ударом друг друга.

Буду очень признательна.
Ответить с цитированием
  (#2 (permalink)) Старый
ppp_extr ppp_extr вне форума
Member
 
Сообщений: 24
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.03.2005
По умолчанию 24.05.2006, 13:30

Программа находит все возможные решения задачи
Запуск: (solve)

Код:
(defun el_in (x y lst)
 (cond
   ((NULL lst) 0)
   ((and (eql (car(car lst)) x) (eql(car(cdr(car lst))) y))  1 )
   ( 1 (el_in x y (cdr lst)) )
 )
)

(defun el_bit (x y lst)
 (cond
   ((NULL lst) 0)
   ((and (eql (abs (-(car(car lst)) (car(cdr(car lst))))) (abs(- x y)))) 1)
   ( 1 (el_bit x y (cdr lst)) )
 )
)

(defun find_pos1 (lst_el state)
(cond
 ( (eql (length lst_el) 4) (print lst_el))
 
 ( 1
  (setq nx 0)
  (setq ny 0)
   (loop
     (setq nx (+ nx 1))
     (loop
      (setq ny (+ ny 1))
      (cond
       ((AND (eql (el_in nx ny lst_el) 0)  (eql (el_bit nx ny lst_el) 0)) 
             (push nx state) 
             (push ny state) 
 
             (find_pos1 (cons(list nx ny) lst_el) state)              
 
             (setq ny (pop state)) 
             (setq nx (pop state)) 
       )
      )                                       
      ((> ny 3) (setq ny 0) NULL) 
     )
     ((> nx 3) NULL)
   )
  )
)
)

(defun solve()
 (find_pos1)
)
Ответить с цитированием
  (#3 (permalink)) Старый
VNataliaV VNataliaV вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.05.2006
По умолчанию 24.05.2006, 15:44

Спасибо огромное!!! Вы мне очень помогли
Ответить с цитированием
Ads
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Походят ли комплектующие друг другу? DENdell Любые вопросы от новичков 1 30.03.2012 02:24
Шрифты наплывают друг на друга. Paster Fob Любые вопросы от новичков 8 19.11.2010 11:15
XP и VISTA как друг с другом ладят aaaares Windows Vista 6 22.03.2009 12:53
Можно ли чтобы от одной видеокарты работало два монитора, независимо друг от друга? Ramzes505 Любые вопросы от новичков 7 04.12.2008 13:08
Расставить N ферзей таким образом, чтобы они не атаковали друг друга mo7 Lisp 4 21.05.2007 12:07
C vs C++ чем они отличаются друг от друга c++ Мысли вслух 26 10.03.2006 18:11
Присваивание массивов друг другу Alter Pascal 2 18.12.2005 15:45
Как повернуть два зеркала к друг другу Limon2005 Pascal 6 22.11.2005 01:08
Visual и MSDN не видят друг друга Rider Visual C++ 8 17.05.2005 12:20
MFC 6.0 & 7.1 чем отличаются эти версии друг от друга Anonymous Visual C++ 1 13.01.2004 23:44
CGI и С++ чем они отличаются друг от друга default С/С++ 1 14.10.2003 19:01
Как расставить шахматные фигуры на доске Anonymous Prolog 4 17.11.2002 01:25



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