Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Mr_Lisp
0 / 0 / 0
Регистрация: 18.01.2016
Сообщений: 4
1

Найти скалярное произведение векторов

18.01.2016, 21:27. Просмотров 1064. Ответов 4
Метки нет (Все метки)

Сформировать в виде файла два вектора размерности не более 8, найти их скалярное произведение и ответ записать в файл



есть нечто похожее для разности двух векторов
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
(defun lab3 ()
(setq f1 (open "~/v1.txt"))
(setq v1 (read f1))
(close f1)
(setq f2 (open "~/v2.txt"))
(setq v2 (read f2))
 (close f2)
(setq f3 (open "~/out.txt" :direction :output))
(if (= (len v1) (len v2))
(setq res (sub-vect v1 v2))
  )
(print res f3)
(close f3)
)
(defun sub-vect (v1 v2)
(mapcar (lambda (x) (apply '- x)) (mapcar 'list v1 v2)))
(defun len (L)
(loop for i in L sum 1))
Файлы для входных данных.
Файл v1.txt : (1 2 3 4 5 6 0 8)
Файл v2.txt : (1 0 3 4 5 6 7 8)

Файлы с выходными данными.
Файл out.txt : (0 2 0 0 0 0 -7 0)
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2016, 21:27
Ответы с готовыми решениями:

Определить функцию работы с векторами: Сложение векторов, разность, умножение на скаляр,скалярное произведение векторов,вычисление длины вектора
с помощью фукнций map/ map-into / reduce определить функцию работы с векторами: Сложение векторов,...

Скалярное произведение векторов без использования встроенных функций
Добрый день!прошу помочь решить задачу: Вводим два вектора(списка) одинаковой длины. Найти...

Скалярное произведение
Всем привет! Изучаю лисп, пытаюсь решить задачку (Определите функцию, вычисляющую скалярное...

Найти скалярное произведение векторов
Найти скалярное произведение векторов вектор а=(a1,a2,..an) и вектор b=(b1,b2,..bn) Добавлено...

Найти скалярное произведение векторов
нужно написать две программы 1) нахождение скалярного произведения векторов ...

4
helter
18.01.2016, 22:11
  #2

Не по теме:

Можно личный вопрос? Почему вы взяли такой ник? Вы хорошо знаете лисп?

0
Catstail
Модератор
24552 / 12468 / 2275
Регистрация: 12.02.2012
Сообщений: 20,239
19.01.2016, 08:58 3
Вычитание векторов:

Lisp
1
2
(defun sub-vect (v1 v2)
  (mapcar '- v1 v2))
0
Mr_Lisp
0 / 0 / 0
Регистрация: 18.01.2016
Сообщений: 4
19.01.2016, 22:50  [ТС] 4
в моём случае необходимо
Цитата Сообщение от Mr_Lisp Посмотреть сообщение
найти их скалярное произведение
Добавлено через 23 минуты
работает только вот так
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
(defun vect ()
(setq f1 (open "E:\\lisp\\v1.txt"))
(setq v1 (read f1))
(close f1)
(setq f2 (open "E:\\lisp\\v2.txt"))
(setq v2 (read f2))
 (close f2)
(setq f3 (open "E:\\lisp\\out.txt" :direction :output))
(if (= (len v1) (len v2))
(setq res (scal-prod v1 v2))
  )
(print res f3)
(close f3)
)
(defun scal-prod (v1 v2)
  (apply '+ (mapcar '* v1 v2)))
(defun len (L)
(loop for i in L sum 1))
0
Catstail
Модератор
24552 / 12468 / 2275
Регистрация: 12.02.2012
Сообщений: 20,239
20.01.2016, 15:15 5
Лучший ответ Сообщение было отмечено Mr_Lisp как решение

Решение

Скалярное произведение векторов:

Lisp
1
(apply '+ (mapcar '* v1 v2))
1
20.01.2016, 15:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2016, 15:15

Найти скалярное произведение векторов
Даны три одномерных массива A, B и C (три вектора) с одинаковым количеством элементов. Получить...

Найти скалярное произведение векторов
заданы три вектора A, B, C размерности n найти скалярное произведение АВ, ВС, СА. ввод вектора...

Найти скалярное произведение векторов
Даны вещественные векторы x,y,z. Вычислить величину (а,а)-(b,c), где а обозначает тот из этих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru