X).

4. 4

Входная цепочка укорачивается на каждом неспонтанном цикле, а укорачиваться бесконечно она не может.

4. 5

допускается( S, [ ], _ ) :-

    конечное( S).

допускается( S, [X | Остальные], Макс_переходов) :-

    Макс_переходов > 0,

    переход( S, X, S1),

    НовыйМакс is Макс_переходов - 1,

    допускается( S1, Остальные, НовыйМакс).

допускается( S, Цепочка, Макс_переходов) :-

    Макс_переходов > 0,

    спонтанный( S, S1),

    НовыйМакс is Макс_переходов - 1,

    допускается( S1, Цепочка, НовыйМакс).

4. 7

(а)    ходконя( X/Y, X1/Y1) :-

                        % Ход коня с поля X/Y на поле X1/Y1

            ( dxy( DX, DY);

                        % Расстояния по направлениям X и Y

              dxy( DY, DX) ),

                        % Или расстояния по направлениям Y и X

            X1 is X + DX,

                        % X1 расположен в пределах шахматной доски

            надоске( X1),

            Y1 is Y + DY,

                        % Y1 расположен в пределах шахматной доски

            надоске( Y1).

        dxy( 2, 1).             % 2 поля вправо, 1 поле вперед

        dxy( 2, -1).            % 2 поля вправо, 1 поле назад

        dxy( -2, 1).            % 2 поля влево, 1 поле вперед

        dxy( -2, -1).           % 2 поля влево, 1 поле назад

        надоске( Коорд) :-

                            % Координаты в пределах доски

            0 < Коорд,

            Коорд < 9.

(b)    путьконя( [ Поле]).         % Конь стоит на поле Поле

            путьконя( [S1, S2 | Остальные] ) :-

            ходконя( S1, S2),

            путьконя( [S2 | Остальные]).

(c)    ?-  путьконя( [2/1, R, 5/4, S, Х/8] ).

Глава 5

5. 1

(a)    X = 1;

        X = 2

(b)    X = 1;

        Y = 1;

Вы читаете Prolog
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату