Умножение матриц - Lisp (229710)
Формулировка задачи:
Нужно умножить матрицы 1х2 и 2х3, при это использовать функции , которые определяют двумерный массив (т.е. MAKE-ARRAY, обращение к элементам массива возможно только через (aref...)). Возможно вообще реализовать такую задачу?
Решение задачи: «Умножение матриц»
textual
Листинг программы
;; Транспонирование матрицы (defun transp-matr (matr) (apply 'mapcar (cons 'list matr))) ==> transp-matr ;; Умножение матриц (defun mult-matr (m1 m2) (let ((m2t (transp-matr m2))) (mapcar #'(lambda (x) (mapcar #'(lambda (y) (apply '+ (mapcar '* x y))) m2t)) m1))) ==> mult-matr (mult-matr '((1 2 3) (4 5 6) (7 8 9)) '((0 1 0) (1 0 0) (1 0 1))) ==> ((5 1 3) (11 4 6) (17 7 9))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д