Чтение онлайн

на главную - закладки

Жанры

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

Братко Иван

Шрифт:
Глава 7

7.2

добавить( Элемент, Список) :-

 var( Список), !,

% Переменная Список представляет пустой список

Список = [Элемент | Хвост].

добавить( Элемент, [ _ | Хвост]) :-

 добавить( Элемент, Хвост).

принадлежит( X, Список) :-

 var( Список), !,

%
Переменная Список представляет пустой список,

% поэтому X не может ему принадлежать

 fail.

принадлежит( X, [X | Хвост]).

принадлежит( X, [ _ | Хвост] ) :-

 принадлежит( X, Хвост).

Глава 8

8.2

добавить_в_конец( L1-[Элемент | Z2], Элемент, L1 - Z2).

8.3

обратить( А - Z, L - L) :-

% Результатом является пустой список,

% если A-Z представляет пустой список

 А == Z, !.

обратить( [X | L] - Z, RL - RZ ) :-

% Непустой список

 обратить( L - Z, RL - [X | RZ].

Глава 9

9.1

список( []).

список( [ _ | Хвост]) :-

 список( Хвост).

9.2

принадлежит( X, X затем ЧтоУгодно).

принадлежит( X, Y затем Спис) :-

 принадлежит( X, Спис).

9.3

преобр( [ , ничего_не_делать).

преобр( [Первый | Хвост], Первый затем Остальные):-

 преобр( Хвост, Остальные).

9.4

преобр( [ , ПустСпис, _, ПустСпис).

% Случай пустого списка

преобр( [Первый | Хвост], НовСпис, Функтор, Пустой) :-

 НовСпис =.. [Функтор, Первый, НовХвост],

 преобр( Хвост, НовХвост, Функтор, Пустой).

9.8

сорт1( [], []).

сорт1( [X], [X]).

сорт1( Спис, УпорСпис) :-

 разбить( Спис, Спис1, Спис2),

% Разбить на 2 прибл. равных списка

 сорт1( Спис1, Упор1),

 сорт1( Спис2, Упор2),

 слить( Упор1, Упор2, УпорСпис).

% Слить отсортированные списки

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

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

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

% X
и Y помещаются в разные списки

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

9.9

(а)

 двдерево( nil).

двдерево( д( Лев, Кор, Прав) ) :-

двдерево( Лев),

двдерево( Прав).

9.10

глубина( пусто, 0).

глубина( д( Лев, Кор, Прав), Г) :-

 глубина( Лев, ГЛ),

 глубина( Прав, ГП),

 макс( ГЛ, ГП, МГ),

 Г is МГ + 1.

макс( А, В, А) :-

 А >= В, !.

макс( А, В, В).

9.11

линеаризация( nil, []).

линеаризация( д( Лев, Кор, Прав), Спис) :-

 линеаризация( Лев, Спис1),

 линеаризация( Прав, Спис2),

 конк( Спис1, [Кор | Спис2], Спис).

9.12

максэлемент( д( _, Кор, nil), Кор) :- !.

% Корень - самый правый элемент

максэлемент( д( _, _, Прав,), Макс) :-

% Правое поддерево непустое

 максэлемент( Прав, Макс).

9.13

внутри( Элем, д( _, Элем, _ ), [ Элем]).

внутри( Элем, д( Лев, Кор, _ ), [Кор | Путь]) :-

 больше( Кор, Элем),

 внутри( Элем, Лев, Путь).

внутри( Элем,д( _, Кор, Прав), [Кор | Путь]) :-

 больше( Элем, Кор),

 внутри( Элем, Прав, Путь).

9.14

% Отображение двоичного дерева, растущего сверху вниз

% Предполагается, что каждая вершина занимает при печати

% один символ

отобр( Дер) :-

 уровни( Дер, 0, да).

% Обработать все уровни

уровни( Дер, Уров, нет) :- !.

% Ниже уровня Уров больше нет вершин

уровни( Дер, Уров, да) :-

% Обработать все уровни, начиная с Уров

 вывод( Дер, Уров, 0, Дальше), nl,

% Вывести вершины уровня Уров

 Уров1 is Уров + 1,

 уровни( Дер, Уров1, Дальше).

% Обработать следующие уровни

Поделиться:
Популярные книги

Адвокат Империи 3

Карелин Сергей Витальевич
3. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 3

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Дурная жена неверного дракона

Ганова Алиса
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дурная жена неверного дракона

Вонгозеро

Вагнер Яна
1. Вонгозеро
Детективы:
триллеры
9.19
рейтинг книги
Вонгозеро

Ведьма Вильхельма

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
8.67
рейтинг книги
Ведьма Вильхельма

Папина дочка

Рам Янка
4. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Папина дочка

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Как я строил магическую империю 7

Зубов Константин
7. Как я строил магическую империю
Фантастика:
попаданцы
постапокалипсис
аниме
фантастика: прочее
5.00
рейтинг книги
Как я строил магическую империю 7

Лучший из худший 3

Дашко Дмитрий
3. Лучший из худших
Фантастика:
городское фэнтези
попаданцы
аниме
6.00
рейтинг книги
Лучший из худший 3

Штурмовик из будущего 3

Политов Дмитрий Валерьевич
3. Небо в огне
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Штурмовик из будущего 3

Последний попаданец 2

Зубов Константин
2. Последний попаданец
Фантастика:
юмористическая фантастика
попаданцы
рпг
7.50
рейтинг книги
Последний попаданец 2

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Вдова на выданье

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Вдова на выданье