Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 29
1

Задача о хромом короле

02.10.2018, 17:23. Показов 1614. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте , ну.. в общем нужно написать программу common lisp'e которая может посчитать количество путей с помощью которых король может добраться с крайнего второго верхнего правого угла к крайнему нижнему левому углу
Король может передвигаться вниз , влево , вправо и вниз (по диагонали)
Нужно решить задачу используя рекурсию , я для начала решил применить функцию cond
Что-то на подобии такого:
Lisp
1
2
3
4
5
6
(defun kingstep (x y f)
cond 
  ((= x 1)1)
  ((= y 1)1)
 )
)
Правда я не уверен правильно ли это и что после этой строки должно быть.
Математически попробовал записать так:
Если x=1 и y=1 , то f=1
f(x,y)= f(x-1 , y-1)+3
Просто только начали учить этот язык , поэтом я глуплю.
Миниатюры
Задача о хромом короле  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2018, 17:23
Ответы с готовыми решениями:

Ошибка в Короле Х5
Всем привет! я увлекаюсь созданием различных клипов... Занимаюсь этим в Corel VideoStudio pro X5......

Пробемы с хромом
Ребята. Кто нибудь сталкивался с такими проблемами в Chrome? Выложил скриншот. В Мозилле и в...

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

Проблемы с хромом
В гугл хроме появился какой-то левый поисковой бар. Справа внизу висит оранжевый тул с лупой...

1
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
02.10.2018, 20:45 2
Лучший ответ Сообщение было отмечено Anaryn как решение

Решение

«Если» будет if. Логическое «и» будет and. Тело функции достаточно прозрачно записывается в виде
Lisp
1
2
3
(if (and (= x 1) (= y 1))
    1
    (+ (f (1- x) (1- y)) 3))
Единственно непрозрачно, что 1- — это функция «отнять один». Вместо (- x 1) обычно пишут (1- x).

Но в этой функции есть баг: она неадекватно реагирует на некорректные аргументы. Кинуть ошибку — это ещё нормально, но, например, если x и y будут отрицательные, она просто не остановится до тех пор, пока стек вызовов не переполнится. Самое красивое решение этой проблемы — в самом начале функции выполнить проверку типов переменных:
Lisp
1
2
(check-type x (integer 1 8))
(check-type y (integer 1 8))
1
02.10.2018, 20:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2018, 20:45
Помогаю со студенческими работами здесь

Траблы с хромом
Здравствуйте! Заметил на сайте в хроме одну странную штуку. Только на главной странице в самом...

Народ, что с хромом?
Сабж. Уже несколько часов хром конкретно глючит. То-ли js не выполняет, то-ли еще чего-то. яндекс...

Что с Гугл-Хромом?
Браузер Google-Chrome мне удобнее, чем I-explorer. Но в последнее время комп стал "зависать". И...

Не открываются страницы мозилой хромом, а ИЕ открывает
Браузеры хром , мозила , опера не открывают страницы, а ИЕ открывает. Интернет работает, проверка...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru