Задача

10/10

Косинусное сходство. Тип К

Теория Нажмите, чтобы прочитать/скрыть

Косинусное сходство - это мера сходства между двумя ненулевыми векторами пространства внутренних произведений,
которая измеряет косинус угла между ними. Она часто используется в информационном поиске и текстовом маркетинге
для определения степени сходства между двумя документами. Она также используется в алгоритмах машинного обучения
для распознавания лиц, объектов и других задач.

Косинусное сходство основано на косинусе угла между двумя ненулевыми векторами \(A,B\).
Косинусное сходство между двумя векторами  - это числовое представление их сходства;
оно варьируется от -1, что полностью отличается, до 1, что является точным совпадением.

Расчет косинусного сходства производится следующим образом:
\(cos(\overrightarrow{A},\overrightarrow{B})=\frac{\overrightarrow{A}\cdot\overrightarrow{B}}{||\overrightarrow{A}||\cdot||\overrightarrow{B}||}\)

где \(||\overrightarrow{A}||,\ ||\overrightarrow{B}||\) - длины векторов \(A,B \) , а \(\overrightarrow{A}\cdot\overrightarrow{B}\) - скалярное (точечное) произведение \(A,B \)

Задача

Даны два "ненулевых" числовых вектора одинакового размера (списоков/кортежей чисел)  \(A, B\).   
Напишите программу, которая "косинусное сходство" векторов  \(A\)\(B\).


Программа должна возвращать одно число  -  "косинусное сходство"  векторов  \(A\)\(B\)  

A

B

косинусное сходство

Пояснение

[0,3,4]

[3,-4,0]

-0.48

\(cos(\overrightarrow{A},\overrightarrow{B})=\frac{\overrightarrow{A}\cdot\overrightarrow{B}}{||\overrightarrow{A}||\cdot||\overrightarrow{B}||}\)
\(||\overrightarrow{A}||=5;\ ||\overrightarrow{B}||=5\\ \overrightarrow{A}\cdot\overrightarrow{B}=-12\)