0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 9
1

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

21.10.2015, 20:38. Показов 2238. Ответов 20
Метки нет (Все метки)

Реализовать алгоритм решения задачи о поиске последовательности перемещений коня на шахматной доске размера m × n (например, 4 × 4 или 4 × 5) из заданной начальной клетки (нижняя левая клетка) в нее же, при этом надо
побывать хотя бы по одному разу на всех остальных клетках доски...
На форуме находила подобную задачу,но она делает проход не по всем клеткам...может кто сможет помочь...
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2015, 20:38
Ответы с готовыми решениями:

Разработать программу для нахождения пути коня на шахматной доске, от одного поля до другого
Здравствуйте! Помогите пожалуйста написать программный код на Lispe и записку к нему. ...

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

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

Поиск кратчайшего пути из точки А до точки В на шахматной доске шагом коня
Всем привет. Я новичек в программировании. Большую сложность вызвала задача в которой необходимо...

20
4810 / 2270 / 287
Регистрация: 01.03.2013
Сообщений: 5,933
Записей в блоге: 26
22.10.2015, 22:57 2
Хорошая задачка, спасибо.
На поиске в ширину мой Лискрипт напрягся, или я не додумался как сделать более красивые отсечения ветвей и границ. Но поскольку в задаче не требуется найти кратчайшую из всех таких последовательностей - встречайте поиск в глубину до первой удачной последовательности: меньше секунды на паре данных тестов, включая парсинг и интерпретацию кода:
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(defn f (m n)
    (defn exist-step (a b c)
        (cond (null? c) False
              (and (eq? a (car c)) (eq? b (cadr c))) True
              (exist-step a b (cdr c))))
 
    (defn next-pos (c)
        (def p (car c))
        (def s (filter (lambda (x) (and (<= 1 (car x) m) (<= 1 (cadr x) n)))
            (map (lambda (x) (cons (+ (car p) (car x)) (+ (cadr p) (cadr x))))
                 '((2 1) (1 2) (-1 2) (-2 1) (-2 -1) (-1 -2) (1 -2) (2 -1)) )))
        (filter (lambda (x) (not (exist-step x p c))) s) )
 
    (defn next-chains (c) (map (lambda (x) (cons x c)) (next-pos c) ))
 
    (def field-ps (concat (map (lambda (x) (map (lambda (y) (cons x y))
                               (list-from-to 1 n))) (list-from-to 1 m))))
    (defn full-chain (c)
        (and (eq? (car c) '(1 1)) (null? (filter (lambda (x) (not (elem x c))) field-ps))))
 
    (defn go (c)
        (def n-c (next-chains c))
        (cond (full-chain c) (reverse c)
              (null? n-c) nil
              (foldr (lambda (x a) (cond (null? a) (go x) a)) nil n-c) ))
    (go '((1 1)) ))
 
(printLn (f 4 4))
(printLn (f 4 5))
((1 1) (2 3) (4 2) (2 1) (1 3) (3 2) (1 1) (3 2) (1 3) (2 1) (3 3) (4 1) (2 2) (4 1) (3 3) (2 1) (4 2) (2 3) (3 1) (1 2) (3 1) (2 3) (4 4) (3 2) (2 4) (4 3) (3 1) (4 3) (2 2) (1 4) (3 3) (1 2) (2 4) (1 2) (3 3) (1 4) (2 2) (3 4) (4 2) (3 4) (2 2) (4 3) (2 4) (3 2) (4 4) (2 3) (1 1))

((1 1) (2 3) (4 2) (2 1) (1 3) (3 2) (1 1) (3 2) (1 3) (2 1) (3 3) (4 1) (2 2) (4 1) (3 3) (2 1) (4 2) (2 3) (3 1) (1 2) (3 1) (2 3) (1 5) (3 4) (4 2) (3 4) (2 2) (1 4) (3 3) (1 2) (2 4) (4 3) (3 1) (4 3) (2 2) (3 4) (1 3) (2 5) (4 4) (3 2) (2 4) (3 2) (4 4) (2 3) (3 5) (4 3) (2 4) (1 2) (3 3) (1 4) (2 2) (4 3) (3 5) (2 3) (4 4) (2 5) (3 3) (4 5) (3 3) (2 5) (1 3) (3 4) (1 5) (2 3) (1 1))
Добавлено через 7 минут
ЗЫ не знаю какую задачу на форуме кто находил, но "выйти конем из некоторой клетки поля и прийти в нее же, не обязательно пройдя по всем клеткам поля" - это сильно
4
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 9
23.11.2015, 09:11  [ТС] 3
А можно построчно комментарии к программе, чтобы понять принцип ее работы...
0
4810 / 2270 / 287
Регистрация: 01.03.2013
Сообщений: 5,933
Записей в блоге: 26
23.11.2015, 13:52 4
Давайте разбираться. Каковы ваши мысли?
0
1046 / 940 / 107
Регистрация: 04.11.2012
Сообщений: 972
Записей в блоге: 3
23.11.2015, 17:05 5
_Ivana Мне тоже интересно, по какому принципу отсекаются ветви при BFS?
Это мне для общего развития.
0
4810 / 2270 / 287
Регистрация: 01.03.2013
Сообщений: 5,933
Записей в блоге: 26
23.11.2015, 22:18 6
Lambdik, вечером попозже после работы освежу алгоритм в памяти и скажу, если интерес останется.

Добавлено через 5 часов 0 минут
Lambdik, вечер настал и я пытаюсь восстановить алгоритм и историю его создания. Вспомнил, что как раз после решения этой задачки рассказывал старшему сыну про нее, мои поиски и решение

Сначала я написал поиск в ширину - стартовая точка дает несколько вариантов продолжений, каждый из вариантов - свои продолжения, и т.п. И я строю список всех достижимых вариантов после n ходов, и если хоть один из них содержит все клетки поля - вывожу его. Для уменьшения количества ненужных вариантов я не делал ходы назад - в ту клетку, из которой попал в текущую. Это конечно не избавляет от зацикливающихся вариантов через 4 хода, но слегка уменьшает общее количество. И на хаскеле или быстром коммон-лиспе это может быть даже и сработало - для малых досок. Но у меня небыстрый интерпретатор, и я не дождался ответа.

Тогда я подумал, что раз нам не нужен в ответе вариант из минимального числа ходов, то сойдет любой устраивающий - и можно найти его поиском в глубину. Но при поиске в глубину надо откидывать ненужные ветки, иначе он никогда не кончится. Я потыкал ручкой по полю на клетчатом листке и понял, что мы не можем принять ограничение, что в одной клетке конь может побывать лишь единожды - для части полей нам придется посещать некоторые клетки дважды. И тут кажется, что у нас нет хорошего критерия отброса ветки поиска. Но он есть Я анализирую не клетки - а ходы = пара клеток (откуда:куда). И из возможных ходов конем из текущей клетки я исключаю ходы, которые я уже делал из этой же клетки в данной ветке поиска. Это гарантирует отсутствие зацикливания. И если после исключения таких ходов больше некуда ходить, а не все поле еще пройдено - то это критерий отброса ветки

Вот, вкратце, идея алгоритма. Он не гарантирует минимум ходов (можете сами походить по бумажке по моим результатам выше ), но гарантирует поиск решения и незацикливание. И выполняется разумное время на моем медленном Лискрипте. Детали реализации могу уточнить дополнительно, если это конечно потребуется - спрашивайте.
1
1046 / 940 / 107
Регистрация: 04.11.2012
Сообщений: 972
Записей в блоге: 3
23.11.2015, 23:27 7
Цитата Сообщение от _Ivana Посмотреть сообщение
Для уменьшения количества ненужных вариантов я не делал ходы назад - в ту клетку, из которой попал в текущую. Это конечно не избавляет от зацикливающихся вариантов через 4 хода, но слегка уменьшает общее количество.
Не, это не то что я хотел. Меня интересует вот это.
Пытался ещё давно поднять этот алгоритм, и не вышло. Методика не годная попалась. Я уверен что смогу сделать, если буду понимать суть решения. Какой принцип нахождения максимального и минимального значения? Конечно для данной задачи поиск в глубину предпочтительней.
Мы тут уже решали кто хотел.
Моя попытка не находит решения для досок с нечётным количеством сторон [5, 7], я уж не разбирался почему.
Бывает что получается реализовать алгоритм тупо по методичке, не вникая в суть. Но я думаю что BFS с отсечениями ветвей заслуживает, чтобы понимать его смысл.
0
4810 / 2270 / 287
Регистрация: 01.03.2013
Сообщений: 5,933
Записей в блоге: 26
24.11.2015, 00:13 8
Lambdik, простите, мне трудно предположить что вы хотели. Мой алгоритм для доски 5*7 вполне находит ответ (см. ниже), а в ваших ссылках надо разбираться.
((1 1) (2 3) (4 2) (2 1) (1 3) (3 2) (5 1) (3 2) (1 1) (3 2) (1 3) (2 1) (3 3) (5 2) (3 1) (1 2) (3 1) (2 3) (3 1) (4 3) (5 1) (4 3) (3 1) (5 2) (3 3) (4 1) (2 2) (4 1) (3 3) (2 1) (4 2) (2 3) (1 5) (3 4) (5 3) (4 1) (5 3) (3 2) (2 4) (4 3) (2 2) (1 4) (3 3) (1 2) (2 4) (3 2) (4 4) (5 2) (4 4) (3 2) (5 3) (3 4) (4 2) (3 4) (2 2) (3 4) (1 3) (2 5) (4 4) (2 3) (3 5) (5 4) (4 2) (5 4) (3 3) (1 4) (2 2) (4 3) (2 4) (1 2) (3 3) (2 5) (3 3) (4 5) (5 3) (4 5) (3 3) (5 4) (3 5) (4 3) (3 5) (2 3) (4 4) (2 5) (1 3) (3 4) (1 5) (2 7) (4 6) (5 4) (4 6) (3 4) (2 6) (4 5) (2 4) (1 6) (3 5) (1 4) (2 6) (3 4) (4 6) (2 5) (1 7) (3 6) (5 5) (4 3) (5 5) (3 4) (5 5) (3 6) (4 4) (3 6) (2 4) (3 6) (1 5) (3 6) (1 7) (2 5) (3 7) (5 6) (4 4) (5 6) (3 5) (1 6) (2 4) (4 5) (2 6) (1 4) (3 5) (2 7) (3 5) (4 7) (5 5) (4 7) (3 5) (5 6) (3 7) (4 5) (5 7) (4 5) (3 7) (2 5) (4 6) (2 7) (1 5) (2 3) (1 1))
Добавлено через 15 минут
Вот для доски 7*7
((1 1) (2 3) (4 2) (6 1) (4 2) (2 1) (1 3) (3 2) (5 1) (3 2) (1 1) (3 2) (1 3) (2 1) (3 3) (5 2) (7 1) (5 2) (3 1) (1 2) (3 1) (2 3) (3 1) (4 3) (6 2) (4 1) (2 2) (4 1) (3 3) (4 1) (5 3) (7 2) (5 1) (4 3) (5 1) (6 3) (7 1) (6 3) (5 1) (7 2) (5 3) (6 1) (5 3) (4 1) (6 2) (4 3) (3 1) (5 2) (3 3) (2 1) (4 2) (2 3) (1 5) (3 4) (5 3) (3 2) (2 4) (4 3) (2 2) (1 4) (3 3) (1 2) (2 4) (3 2) (4 4) (6 3) (4 2) (3 4) (4 2) (5 4) (7 3) (6 1) (7 3) (5 2) (4 4) (5 2) (6 4) (7 2) (6 4) (5 2) (7 3) (5 4) (6 2) (5 4) (4 2) (6 3) (4 4) (3 2) (5 3) (3 4) (2 2) (3 4) (1 3) (2 5) (4 4) (2 3) (3 5) (5 4) (3 3) (1 4) (2 2) (4 3) (2 4) (1 2) (3 3) (2 5) (3 3) (4 5) (6 4) (4 3) (3 5) (4 3) (5 5) (7 4) (6 2) (7 4) (5 3) (4 5) (5 3) (6 5) (7 3) (6 5) (5 3) (7 4) (5 5) (6 3) (5 5) (4 3) (6 4) (4 5) (3 3) (5 4) (3 5) (2 3) (4 4) (2 5) (1 3) (3 4) (1 5) (2 7) (4 6) (6 5) (4 4) (3 6) (5 5) (3 4) (2 6) (4 5) (2 4) (1 6) (3 5) (1 4) (2 6) (3 4) (4 6) (5 4) (4 6) (3 4) (5 5) (3 6) (4 4) (5 6) (7 5) (6 3) (7 5) (5 4) (6 6) (7 4) (6 6) (5 4) (7 5) (5 6) (6 4) (5 6) (4 4) (6 5) (4 6) (2 5) (1 7) (3 6) (2 4) (3 6) (1 5) (3 6) (1 7) (2 5) (3 7) (5 6) (3 5) (1 6) (2 4) (4 5) (2 6) (1 4) (3 5) (2 7) (3 5) (4 7) (6 6) (4 5) (3 7) (4 5) (5 7) (7 6) (6 4) (7 6) (5 5) (4 7) (5 5) (6 7) (7 5) (6 7) (5 5) (7 6) (5 7) (6 5) (5 7) (4 5) (6 6) (4 7) (3 5) (5 6) (7 7) (6 5) (7 7) (5 6) (3 7) (2 5) (4 6) (2 7) (1 5) (2 3) (1 1))
2
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 9
25.11.2015, 23:28  [ТС] 9
А по коду относительно каждой строки, можно краткое описание?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
31535 / 17454 / 3663
Регистрация: 12.02.2012
Сообщений: 29,399
Записей в блоге: 5
26.11.2015, 11:59 10
HomeLisp, бэктрекинг. Перечисление всех ходов конем из поля-1 в поле-2:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
(defun search (curr end &optional (pth (list curr)))
  (cond  ((equal curr end) 
          (mapcar #'(lambda (c) (prints (strCat (show-turn (car c) (cadr c)) "->"))) (reverse pth))
          (terpri))
         (t 
          (iter (for xx in '(-2 -1 1 2))
                (iter (for yy in '(-2 -1 1 2))
                      (let ((xn (+ (car curr) xx))
                            (yn (+ (cadr curr) yy)))
                            (when (and (and (/= (abs xx) (abs yy)))
                                  (and (> xn 0) (> yn 0))
                                  (and (<= xn 8) (<= yn 8))
                                  (not (member (list xn yn) pth)))
                                  (search (list xn yn) end  (cons (list xn yn) pth)))))))))
 
==> search
 
(defun show-turn (x y)
  (strCat (strMid "ABCDEFGH" x 1) (fix2str y))) 
 
==> show-turn
 
(defun task (beg end)
  (let ((aBeg (list (strInd "ABCDEFGH" (strLeft beg 1)) (str2fix (strRight beg 1))))
        (aEnd (list (strInd "ABCDEFGH" (strLeft end 1)) (str2fix (strRight end 1)))))
       (search aBeg aEnd)))
 
==> task
 
(task "A1" "B4")
 
A1->B3->A5->B7->C5->A4->B2->C4->A3->B1->C3->A2->B4->
A1->B3->A5->B7->C5->A4->B2->C4->A3->B1->C3->A2->C1->D3->B4->
A1->B3->A5->B7->C5->A4->B2->C4->A3->B1->C3->A2->C1->D3->E1->C2->B4->
 
и т.д.
1
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 9
28.11.2015, 19:04  [ТС] 11
По поводу этой задачи, на форуме, нашел Ваш код, с очень подробным и понятным объяснением..
Но возникли вопросы по поводу следующих обозначений в этом куске кода (не могли бы вы его прокомментировать??):
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(defun next-step-list (cell)
     (let ((col (car cell))
           (row (cadr cell))
           (res nil)
           (cc  0)
           (rr  0))
      (dolist (n *sca* res)
           (setq cc (car n))
           (setq rr (cadr n))
           (when (AND (<= (+ col cc) 8) (<= (+ row rr) 8)
                      (> (+ col cc) 0) (> (+ row rr) 0))
                 (setq res (cons (list (+ col cc) (+ row rr)) res))
           )
      )))
Это скопированный весь код:
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
(setq *sca*   '((1 2) (1 -2) (-1 2) (-1 -2) (2 1) (2 -1) (-2 1) (-2 -1)))
(setq *chk*   nil)
(setq *stack* nil)
(setq *flg* nil)
 
 (defun member! (item lst)
     (cond ((null lst) nil)
           ((equal (car lst) item) t)
           (t (member! item (cdr lst)))))
 
(defun next-step-list (cell)
     (let ((col (car cell))
           (row (cadr cell))
           (res nil)
           (cc  0)
           (rr  0))
      (dolist (n *sca* res)
           (setq cc (car n))
           (setq rr (cadr n))
           (when (AND (<= (+ col cc) 8) (<= (+ row rr) 8)
                      (> (+ col cc) 0) (> (+ row rr) 0))
                 (setq res (cons (list (+ col cc) (+ row rr)) res))
           )
      )))           
                   
                   
(defun dfs (end)
  (when (not *flg*)
    (let ((lst (next-step-list (car *stack*))))
        (dolist (icell lst t)
            (unless (member! icell *chk*)
                    (print icell) (terpri)
                    (if (AND (= (car icell) (car end)) (= (cadr icell) (cadr end)))
                        (progn  (setq *flg* t)(print 'OK) (return 'ok))
                        (progn  (setq *stack* (cons icell *stack*))
                                (setq *chk* (cons icell *chk*))
                                (dfs end)))
                    (setq *stack* (cdr *stack*)))))))
                    
(defun task (start end)
   (setq *chk*   nil)
   (setq *stack* nil)
   (setq *stack* (list start))
   (setq *chk* (list start))
   (setq *flg* nil)
   (dfs end))
   
 (task '(1 1) '(5 3))
0
_Ivana
28.11.2015, 19:42
  #12

Не по теме:

Цитата Сообщение от Винни Посмотреть сообщение
На форуме находила подобную задачу
Цитата Сообщение от Винни Посмотреть сообщение
нашел Ваш код
хотя сейчас это модно :)

0
Модератор
Эксперт функциональных языков программированияЭксперт Python
31535 / 17454 / 3663
Регистрация: 12.02.2012
Сообщений: 29,399
Записей в блоге: 5
28.11.2015, 22:20 13
Винни, похоже на что-то мое. Это так?
0
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 9
29.11.2015, 12:41  [ТС] 14
Да,это Вы писали код, на такую же задачу...
0
4810 / 2270 / 287
Регистрация: 01.03.2013
Сообщений: 5,933
Записей в блоге: 26
20.10.2016, 03:58 15
Не прошло и года, как я вернулся к теме Просто эта задачка включена у меня в демо-примеры, хотя я допускаю, что написал не самую оптимальную реализацию. В свете недавних событий, выбрал ее в качестве примера для перевода на синтаксис Scheme/Racket. Что хорошо - что названные мной по аналогии с Haskell библиотечные функции map, foldl, filter волшебным образом имеют такие же названия в Racket (хотя запросто могли бы свертку обозвать reduce, например ), что есть стандартные and/or/not/null? и т.п. Что плохо - что нет nil, elem и т.п., хотя они скорее всего есть с другими именами. Что совсем не фонтан - что в порыве творчества я навелосипедил свое поведение базовой тройки cons/car/cdr на нескольких аргументах и даже не являющихся списками, а Racket вываливается с ошибками в рантайме при попытке взять cadr от списка из одного элемента, что у меня в принципе нет точечных пар и списков - только обычные списки (до сих пор не понимаю зачем нужны точечные) и т.п. В общем, как-то получилось переписать код на другой синтаксис, но все это конечно может создать дополнительные трудности при попытке реализации автоматической трансляции.
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#lang racket
 
(define (list-from-to a b)
    (define (go i l) (cond ((< i a) l) (else (go (- i 1) (cons i l))) ))
    (go b '()))
 
(define (elem x l) (cond ((null? l) #f) ((equal? x (car l)) #t) (else (elem x (cdr l)))))
 
(define (concat l) (cond ((null? l) '()) (else (append (car l) (concat (cdr l)))) ))
 
(define (knight m n)
    (define (exist-step a b c)
        (cond ((null? (cdr c)) #f)
              ((and (equal? a (car c)) (equal? b (cadr c))) #t)
              (else (exist-step a b (cdr c)))))
 
    (define (next-pos c)
        (define p (car c))
        (define s (filter (lambda (x) (and (<= 1 (car x) m) (<= 1 (cadr x) n)))
            (map (lambda (x) (list (+ (car p) (car x)) (+ (cadr p) (cadr x))))
                 '((2 1) (1 2) (-1 2) (-2 1) (-2 -1) (-1 -2) (1 -2) (2 -1)) )))
        (filter (lambda (x) (not (exist-step x p c))) s))
 
    (define (next-chains c) (map (lambda (x) (cons x c)) (next-pos c) ))
 
    (define field-ps (concat (map (lambda (x) (map (lambda (y) (list x y))
                               (list-from-to 1 n))) (list-from-to 1 m))))
    (define (full-chain? c)
        (and (equal? (car c) '(1 1)) (null? (filter (lambda (x) (not (elem x c))) field-ps))))
 
    (define (go c)
        (define n-c (next-chains c))
        (cond ((full-chain? c) (reverse c))
              ((null? n-c) '())
              (else (foldl (lambda (x a) (cond ((null? a) (go x)) (else a))) '() n-c)) ))
 
    (go '((1 1))))
 
(time (display (knight 11 13)) (newline))
Язык: racket, with debugging [выбранный]; memory limit: 256 MB.
((1 1) (3 2) (5 3) (7 4) (9 5) (11 6) (10 8) (11 10) (10 12) (8 13) (6 12) (8 13) (7 11) (9 12) (11 13) (9 12) (7 13) (5 12) (7 13) (6 11) (8 12) (10 13) (8 12) (6 13) (4 12) (6 13) (5 11) (7 12) (9 13) (7 12) (5 13) (3 12) (5 13) (4 11) (6 12) (4 13) (2 12) (4 13) (3 11) (5 12) (3 13) (1 12) (3 13) (2 11) (4 12) (2 13) (1 11) (3 12) (1 13) (2 11) (3 13) (4 11) (5 13) (6 11) (7 13) (8 11) (10 12) (8 11) (9 13) (8 11) (7 13) (9 12) (7 11) (8 13) (9 11) (11 12) (9 13) (10 11) (11 13) (10 11) (9 13) (11 12) (9 11) (10 13) (9 11) (8 13) (10 12) (9 10) (11 11) (10 13) (11 11) (9 12) (8 10) (10 11) (8 12) (6 11) (5 13) (7 12) (5 11) (6 13) (7 11) (6 13) (8 12) (7 10) (9 11) (7 12) (6 10) (8 11) (6 12) (4 11) (3 13) (5 12) (3 11) (4 13) (5 11) (4 13) (6 12) (5 10) (7 11) (5 12) (4 10) (6 11) (4 12) (2 11) (1 13) (3 12) (1 11) (2 13) (3 11) (2 13) (4 12) (3 10) (5 11) (3 12) (2 10) (4 11) (2 12) (1 10) (3 11) (1 12) (2 10) (3 12) (4 10) (5 12) (6 10) (7 12) (8 10) (9 12) (10 10) (11 12) (10 10) (9 12) (11 11) (9 10) (10 12) (11 10) (9 11) (7 10) (8 12) (9 10) (8 12) (10 11) (8 10) (7 12) (9 11) (8 9) (10 10) (8 11) (6 10) (5 12) (7 11) (5 10) (6 12) (7 10) (6 12) (8 11) (7 9) (9 10) (7 11) (6 9) (8 10) (6 11) (4 10) (3 12) (5 11) (3 10) (4 12) (5 10) (4 12) (6 11) (5 9) (7 10) (5 11) (4 9) (6 10) (4 11) (2 10) (1 12) (3 11) (1 10) (2 12) (3 10) (2 12) (4 11) (3 9) (5 10) (3 11) (2 9) (4 10) (2 11) (1 9) (3 10) (1 11) (2 9) (3 11) (4 9) (5 11) (6 9) (7 11) (8 9) (9 11) (10 9) (11 11) (10 9) (9 11) (11 10) (9 9) (11 10) (10 8) (9 10) (7 9) (8 11) (9 9) (10 11) (9 9) (8 11) (10 10) (8 9) (7 11) (9 10) (8 8) (10 9) (8 10) (6 9) (5 11) (7 10) (5 9) (6 11) (7 9) (6 11) (8 10) (7 8) (9 9) (7 10) (6 8) (8 9) (6 10) (4 9) (3 11) (5 10) (3 9) (4 11) (5 9) (4 11) (6 10) (5 8) (7 9) (5 10) (4 8) (6 9) (4 10) (2 9) (1 11) (3 10) (1 9) (2 11) (3 9) (2 11) (4 10) (3 8) (5 9) (3 10) (2 8) (4 9) (2 10) (1 8) (3 9) (1 10) (2 8) (3 10) (4 8) (5 10) (6 8) (7 10) (8 8) (9 10) (10 8) (8 9) (6 8) (5 10) (7 9) (5 8) (6 10) (7 8) (8 10) (9 8) (11 9) (10 11) (11 9) (9 10) (11 9) (9 8) (10 10) (9 8) (8 10) (10 9) (8 8) (7 10) (9 9) (7 8) (6 10) (8 9) (7 7) (9 8) (7 9) (6 7) (8 8) (6 9) (4 8) (3 10) (5 9) (3 8) (4 10) (5 8) (4 10) (6 9) (5 7) (7 8) (5 9) (4 7) (6 8) (4 9) (2 8) (1 10) (3 9) (1 8) (2 10) (3 8) (2 10) (4 9) (3 7) (5 8) (3 9) (2 7) (4 8) (2 9) (1 7) (3 8) (1 9) (2 7) (3 9) (4 7) (5 9) (6 7) (7 9) (8 7) (10 8) (8 7) (9 9) (8 7) (7 9) (9 8) (7 7) (8 9) (9 7) (11 8) (10 10) (11 8) (9 9) (10 7) (11 9) (10 7) (9 9) (11 8) (9 7) (10 9) (9 7) (8 9) (10 8) (9 6) (11 7) (10 9) (11 7) (9 8) (8 6) (10 7) (8 8) (6 7) (5 9) (7 8) (5 7) (6 9) (7 7) (6 9) (8 8) (7 6) (9 7) (7 8) (6 6) (8 7) (6 8) (4 7) (3 9) (5 8) (3 7) (4 9) (5 7) (4 9) (6 8) (5 6) (7 7) (5 8) (4 6) (6 7) (4 8) (2 7) (1 9) (3 8) (1 7) (2 9) (3 7) (2 9) (4 8) (3 6) (5 7) (3 8) (2 6) (4 7) (2 8) (1 6) (3 7) (1 8) (2 6) (3 8) (4 6) (5 8) (6 6) (7 8) (8 6) (9 8) (10 6) (11 8) (10 6) (9 8) (11 7) (9 6) (10 8) (11 6) (9 7) (7 6) (8 8) (9 6) (8 8) (10 7) (8 6) (7 8) (9 7) (8 5) (10 6) (8 7) (6 6) (5 8) (7 7) (5 6) (6 8) (7 6) (6 8) (8 7) (7 5) (9 6) (7 7) (6 5) (8 6) (6 7) (4 6) (3 8) (5 7) (3 6) (4 8) (5 6) (4 8) (6 7) (5 5) (7 6) (5 7) (4 5) (6 6) (4 7) (2 6) (1 8) (3 7) (1 6) (2 8) (3 6) (2 8) (4 7) (3 5) (5 6) (3 7) (2 5) (4 6) (2 7) (1 5) (3 6) (1 7) (2 5) (3 7) (4 5) (5 7) (6 5) (7 7) (8 5) (9 7) (10 5) (11 7) (10 5) (9 7) (11 6) (9 5) (10 7) (9 5) (8 7) (9 5) (7 6) (5 5) (6 7) (7 5) (8 7) (10 6) (8 5) (7 7) (9 6) (7 5) (6 7) (8 6) (6 5) (5 7) (7 6) (6 4) (8 5) (6 6) (4 5) (3 7) (5 6) (3 5) (4 7) (5 5) (4 7) (6 6) (5 4) (7 5) (5 6) (4 4) (6 5) (4 6) (2 5) (1 7) (3 6) (1 5) (2 7) (3 5) (2 7) (4 6) (3 4) (5 5) (3 6) (2 4) (4 5) (2 6) (1 4) (3 5) (1 6) (2 4) (3 6) (4 4) (5 6) (6 4) (7 6) (8 4) (10 5) (8 6) (7 4) (8 6) (9 4) (11 5) (10 7) (11 5) (9 6) (8 4) (9 6) (10 4) (11 6) (10 4) (9 6) (11 5) (9 4) (10 6) (9 4) (8 6) (10 5) (8 4) (7 6) (9 5) (7 4) (6 6) (7 4) (5 5) (3 4) (4 6) (5 4) (6 6) (8 5) (6 4) (5 6) (7 5) (5 4) (4 6) (6 5) (4 4) (3 6) (5 5) (4 3) (6 4) (4 5) (2 4) (1 6) (3 5) (1 4) (2 6) (3 4) (2 6) (4 5) (3 3) (5 4) (3 5) (2 3) (4 4) (2 5) (1 3) (3 4) (1 5) (2 3) (3 5) (4 3) (5 5) (6 3) (8 4) (6 5) (5 3) (6 5) (7 3) (9 4) (7 5) (6 3) (7 5) (8 3) (10 4) (8 5) (7 3) (8 5) (9 3) (11 4) (10 6) (11 4) (9 5) (8 3) (9 5) (10 3) (11 5) (10 3) (9 5) (11 4) (9 3) (10 5) (9 3) (8 5) (10 4) (8 3) (7 5) (9 4) (7 3) (6 5) (8 4) (6 3) (5 5) (7 4) (5 3) (4 5) (5 3) (3 4) (1 3) (2 5) (3 3) (4 5) (6 4) (4 3) (3 5) (5 4) (3 3) (2 5) (4 4) (2 3) (1 5) (3 4) (2 2) (4 3) (2 4) (1 2) (3 3) (1 4) (2 2) (3 4) (4 2) (6 3) (4 4) (3 2) (4 4) (5 2) (7 3) (5 4) (4 2) (5 4) (6 2) (8 3) (6 4) (5 2) (6 4) (7 2) (9 3) (7 4) (6 2) (7 4) (8 2) (10 3) (8 4) (7 2) (8 4) (9 2) (11 3) (10 5) (11 3) (9 4) (8 2) (9 4) (10 2) (11 4) (10 2) (9 4) (11 3) (9 2) (10 4) (9 2) (8 4) (10 3) (8 2) (7 4) (9 3) (7 2) (6 4) (8 3) (6 2) (5 4) (7 3) (5 2) (4 4) (6 3) (4 2) (3 4) (5 3) (3 2) (2 4) (3 2) (1 3) (2 1) (4 2) (2 3) (1 1) (2 3) (3 1) (5 2) (3 3) (1 2) (2 4) (4 3) (2 2) (1 4) (3 3) (2 1) (3 3) (4 1) (6 2) (4 3) (3 1) (4 3) (5 1) (7 2) (5 3) (4 1) (5 3) (6 1) (8 2) (6 3) (5 1) (6 3) (7 1) (9 2) (7 3) (6 1) (7 3) (8 1) (10 2) (8 3) (7 1) (8 3) (9 1) (11 2) (10 4) (11 2) (9 3) (8 1) (9 3) (10 1) (11 3) (10 1) (9 3) (11 2) (9 1) (10 3) (9 1) (8 3) (10 2) (8 1) (7 3) (9 2) (11 1) (10 3) (11 1) (9 2) (7 1) (6 3) (8 2) (6 1) (5 3) (7 2) (5 1) (4 3) (6 2) (4 1) (3 3) (5 2) (3 1) (2 3) (4 2) (2 1) (1 3) (3 2) (1 1))
cpu time: 9297 real time: 9414 gc time: 77
2
0 / 0 / 0
Регистрация: 17.04.2020
Сообщений: 6
30.10.2020, 20:32 16
На каком компиляторе можно запустить самый код? не получается запустить
0
Заблокирован
30.10.2020, 22:08 17
slon_bal, там же написано - #lang racket
0
0 / 0 / 0
Регистрация: 17.04.2020
Сообщений: 6
30.10.2020, 23:10 18
самый первый пример кода не получается запустить со всех компиляторов(от 22.10.2015). с #lang racket все понятно.
0
Заблокирован
30.10.2020, 23:19 19
Цитата Сообщение от _Ivana Посмотреть сообщение
На поиске в ширину мой Лискрипт напрягся
slon_bal, Судя по синтаксису это что-то на основе Racket. Попробуйте заменить расходящиеся с Racket конструкции на конструкции языка Racket.
0
4810 / 2270 / 287
Регистрация: 01.03.2013
Сообщений: 5,933
Записей в блоге: 26
31.10.2020, 02:04 20
Цитата Сообщение от slon_bal Посмотреть сообщение
самый первый пример кода
написан на собственном диалекте лиспа, подробнее по ссылке в моей подписи
Цитата Сообщение от slon_bal Посмотреть сообщение
На каком компиляторе можно запустить самый код? не получается запустить
пока ни на каком - на данный момент существуют 4 реализации, и все интерпретируемые, без компилятора
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2020, 02:04
Помогаю со студенческими работами здесь

Ход коня на шахматной доске
Я вообще в этом языке плохо понимаю, поэтому огромная просьба помогите написать программу для...

Движение коня по всей шахматной доске
Помогите написать программу пожалуйста. Такое задание: Написать программу,демонстрирующую решение...

Ход коня по шахматной доске случайным образом
Используйте генерацию случайного числа для предоставления коню возможности ходить по шахматной...

Одного ли цвета клетки на шахматной доске?
Даны координаты двух полей шахматной доски (координаты клетки - это 2 числа от 1 до 8: номер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru