Добавил:
wolfain@mail.ru Хз кто это читает, но знайте - открыт к любым новым знакомствам (нет). Хех. Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab.02

.docx
Скачиваний:
11
Добавлен:
04.03.2018
Размер:
76.59 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федерально автономное образовательное учреждение высшего образования

«Севастопольский государственный университет»

кафедра Информационных систем

Волков Андрей Алексеевич

Институт информационных технологий и управления в технических системах

курс 4 группа ИС/б-41-о

09.03.02 Информационные системы и технологии (уровень бакалавриата)

ОТЧЕТ

по лабораторной работе №2

по дисциплине «Методы и системы искусственного интеллекта»

на тему «Сравнение итерационного и рекурсивного методов решения задач»

Отметка о зачете ____________________ ________

(дата)

Руководитель практикума

ассистент Забаштанский А. К.

(должность) (подпись) (инициалы, фамилия)

Севастополь 2017

  1. ЦЕЛЬ РАБОТЫ

Исследование способов организации циклических вычислений в языке Лисп с помощью итерационного и рекурсивного методов, сравнение указанных методов по вычислительной эффективности и выразительности, получение практических навыков работы со списочными структурами.

  1. ПОСТАНОВКА ЗАДАЧИ

Вариант №5

Описать функцию, подсчитывающую произведение всех четных элементов списка.

  1. ХОД РАБОТЫ

Код функций:

(defun lab2_a (L)

(cond

((null L) 1)

((= (rem (car L) 2) 0) (* (car L) (lab2_a (cdr L))))

(t(lab2_a (cdr L))

)

)

)

(defun lab2_b (list)

(do* ((mlst list (cdr mlst))

(res 1 (if (not (null mlst)) (if (= (rem (car mlst) 2) 0) (* res (car mlst)) res) res)))

((null mlst) res)))

Результат работы:

;; Tracing function LAB2_A.

1. Trace: (LAB2_A '(1 2 3 4 5 6))

2. Trace: (LAB2_A '(2 3 4 5 6))

3. Trace: (LAB2_A '(3 4 5 6))

4. Trace: (LAB2_A '(4 5 6))

5. Trace: (LAB2_A '(5 6))

6. Trace: (LAB2_A '(6))

7. Trace: (LAB2_A 'NIL)

7. Trace: LAB2_A ==> 1

6. Trace: LAB2_A ==> 6

5. Trace: LAB2_A ==> 6

4. Trace: LAB2_A ==> 24

3. Trace: LAB2_A ==> 24

2. Trace: LAB2_A ==> 48

1. Trace: LAB2_A ==> 48

48

;; Tracing function LAB2_B.

1. Trace: (LAB2_B '(1 2 3 4 5 6))

1. Trace: LAB2_B ==> 48

48

На рисунке 1 показаны физические затраты компьютера для выполнения итерационного метода.

Рисунок 1 – Затраты на исполнение итерационного метода

На рисунке 2 показаны физические затраты компьютера для выполнения рекурсивного метода.

Рисунок 2 – Затраты на исполнение рекурсивного метода

ВЫВОДЫ

В ходе выполнения лабораторной работы были исследованы способы организации циклических вычислений в языке Лисп с помощью итерационного и рекурсивного методов, сравнены указанные методы по вычислительно эффективности и выразительности, получены практические навыки работы со списочными структурами.

Соседние файлы в предмете Искусственный интеллект