Функції планування, Детальна інформація

Функції планування
Тип документу: Реферат
Сторінок: 5
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 0
Скачувань: 832
(CONS (MAPCAR 'CAR matr) (TRANS (MAPCAR 'CDR matr))) )

Розглянемо роботу функції TRANS на прикладі по крокам:

(TRANS ‘((1 2 3)(4 5 6)(7 8 9)))

(CONS ‘(1 4 7) (TRANS ‘((2 3)(5 6)(8 9))))

(CONS ‘(1 4 7) (CONS ‘(2 5 8) (TRANS ‘((3)(6)(9)))))

(CONS ‘(1 4 7) (CONS ‘(2 5 8) (CONS ‘(3 6 9) (TRANS ‘( () () () )))))

(CONS ‘(1 4 7) (CONS ‘(2 5 8) (CONS ‘(3 6 9) NIL)))

(CONS ‘(1 4 7) (CONS ‘(2 5 8) ‘((3 6 9)) ))

(CONS ‘(1 4 7) ‘((2 5 8) (3 6 9)) )

((1 4 7)(2 5 8)(3 6 9))

Далі напишемо функцію MULT – множення двох матриць. Але спочатку напишемо декілька допоміжних функцій.

Функція SCALAR знаходить скалярний добуток двох векторів, представлених списками x та y.

(DEFUN SCALAR (x y) $ (SCALAR ‘(1 2 3) ‘(4 5 6))

(APPLY '+ (MAPCAR '* x y)) 32

Функція MULT2 будує список скалярних добутків вектора x на елементи списку y, які є векторами

(DEFUN MULT2 (x y)

(MAPCAR 'SCALAR (MAKE-LIST (LENGTH x) x) y) )

$ (MULT2 ‘(1 2 3) ‘((1 2 3)(4 5 6)(7 8 9)))

(14 32 50)

Функція MULT1 утворює список списків скалярних добутків усіх можливих елементів x та y.

(DEFUN MULT1 (x y)

(MAPCAR 'MULT2 x (MAKE-LIST (LENGTH y) y)) )

$ (MULT1 ‘((1 2 3)(4 5 6)(7 8 9)) ‘((1 2 3)(4 5 6)(7 8 9)))

((14 32 50) (32 77 122) (50 122 194))

(DEFUN MULT (x y)

(MULT1 x (TRANS y)) )

$ (MULT ‘((1 2 3)(4 5 6)(7 8 9)) ‘((1 2 3)(4 5 6)(7 8 9)))

((30 36 42) (66 81 96) (102 126 150))

The online video editor trusted by teams to make professional video in minutes