Программирование на языке Пролог для искусственного интеллекта


Упражнения



Упражнения

2. 6.    Рассмотрим следующую программу:

    f( 1, один).
    f( s(1), два).
    f(    s(s(1)),    три).
    f( s(s(s(X))),  N) :-
               f(X,   N).

Как пролог-система ответит на следующие вопросы? Там, где возможны несколько ответов, приведите по крайней мере два.

    (a)        ?- f( s( 1), A).
    (b)        ?- f( s(s(1)), два).
    (c)        ?- f(   s(s(s(s(s(s(1)))))), С).
    (d)        ?- f( D, три).

Посмотреть ответ

2. 7.    В следующей программе говорится, что два человека являются родственниками, если

    (a)        один является предком другого, или
    (b)        у них есть общий предок, или
    (c)        у них есть общий потомок.

    родственники( X, Y) :-
          предок( X, Y).

    родственники( X, Y) :-
          предок( Y, X).

    родственники( X, Y) :-
                      % X и Y имеют общего предка
          предок( Z, X),
          предок( Z, Y).

    родственники( X, Y) :-
                      % X и Y имеют общего потомка
          предок( X, Z),
          предок( Y, Z).

Сможете ли вы сократить эту программу, используя запись с точками с запятой?

Посмотреть ответ

2. 8.    Перепишите следующую программу, не пользуясь точками с запятой.

    преобразовать( Число, Слово) :-
          Число = 1,  Слово = один;
          Число = 2,  Слово = два;
          Число = 3,  Слово = три.

Посмотреть ответ



Начало Назад Вперед


Книжный магазин