Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > LISP > задача про 3 кучки и ее решение!


Автор: chernika93 7.4.2014, 20:13
Доброго времени суток. 
Передо мной поставлена задача для решения на лиспе, используя индуктивные методы.
В общем, суть.
Дано 3 кучки камешков (с разным количеством),2 игрока. За один шаг можно брать любое количество этих камешков, но только с одной кучки. Выиграет тот, кто возьмет последний.
Нужно написать функцию типа (NIM a b c) (аргументы - это количество камешков в кучках), которая бы вовзращала конс ( х.у) где х это номер кучки, а у-количество взятых камешков.
Идея решения есть, скину, если понадобится, но по коду должно быть все ясно.
В лиспе я новичок, так что извините если что)))
я написала вот такое вот:
Код

(defun nimk (a b c k)

  (cond 
     ((< (logxor a k) a) (if(= (logxor (- a k) b c)0) (cons 1 k)))
        ((< (logxor b k) b) (if(= (logxor a (- b k) c)0) (cons 2 k)))
        ((< (logxor c k) c) (if(= (logxor a b (- c k))0) (cons 3 k)))
        (t(nimk (a b c (+ k 1))))))


но выводит ошибку про *** - EVAL: undefined function A

Что не так? Подскажите. Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)