удалить( Ребенок1, Дети, ДругиеДети),

  % Выделить первого ребенка

 принадлежит( Ребенок2, ДругиеДети),

 принадлежит( Ребенок1, Дата),

 принадлежит( Ребенок2, Дата).

4.3

n_элемент( 1, [X | L], X).

  % X - первый элемент списка [X | L]

n_элемент( N, [Y | L], X) :-

  % X - n-й элемент [Y | L]

 N1 is N - 1,

 n_элемент( N1, L, 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, X/8] ).

Глава 5

5.1

(a) X = 1;

   X = 2

(b) X = 1;

   Y = 1;

   X = 1;

   Y = 2;

   X = 2;

   Y = 1;

   X = 2;

   Y = 2;

(c) X = 1;

   Y = 1;

   X = 1;

   Y = 2;

5.2

класс( Число, положительное) :-

 Число > 0, !.

класс( 0, нуль) :- !.

класс( Число, отрицательное).

5.3

разбить( [], [], []).

разбить( [X | L], [X | L1], L2) :-

 X >= 0, !,

 разбить( L, L1, L2).

разбить( [X | L], L1, [X | L2]) .

 разбить( L, L1, L2).

5.4

принадлежит( Некто, Кандидаты),

 not принадлежит( Некто, Исключенные)

5.5

разность( [], _, []).

разность( [X | L1], L2, L):-

 принадлежит( X, L2), !,

 разность( L1, L2, L).

разность( [X | L1], L2, [X | L]) :-

 разность( L1, L2, L).

5.6

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

0

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

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