Public static double CosineBetweenVectors(double[] a, double[] b) { if (a.Length != b.Length || a.Length == 0) throw new Exception("не верные параметры");
double ab = 0; double a_length = 0; double b_length = 0; for (var i = 0; i < a.Length; i++) { ab += a[i] * b[i]; a_length = a[i] * a[i]; b_length = b[i] * b[i]; }
if (a_length * b_length == 0) throw new Exception("Нулевые вектора");
return ab / Math.Sqrt(a_length) / Math.Sqrt(b_length); }
barekyan096140
14.05.2023
Объясняю.За ответ отметить 1)сначала подставим значения в выражение: НЕ(3больше2) и НЕ(3=5) 2)запишем значения выражения: 0 и 1 3)И-это связка &,в алгебре логики(информатика,9 класс) это у нас знак конъюнкции. Определение:конъюнкция-логическое умножение. Т.е. если все входящие переменные истинны(равны 1,ноль это ложь,а 1-истина),то и конъюнкция истинна. Из выражения "не(X>Z)и не(X=Y), если X=3, Y=5, Z=2" мы имеем: 0 & 1. 0 не равен единице,из этого следует,что здесь конъюнкция ложна. Кроме конъюнкции действий нет,а это значит,что она-это всё выражение.Если конъюнкция здесь ложная,то и выражение ложное,соотв.оно имеет значение 0. ответ:0
BekturMagometovich189
14.05.2023
Объясняю.За ответ отметить 1)сначала подставим значения в выражение: НЕ(3больше2) и НЕ(3=5) 2)запишем значения выражения: 0 и 1 3)И-это связка &,в алгебре логики(информатика,9 класс) это у нас знак конъюнкции. Определение:конъюнкция-логическое умножение. Т.е. если все входящие переменные истинны(равны 1,ноль это ложь,а 1-истина),то и конъюнкция истинна. Из выражения "не(X>Z)и не(X=Y), если X=3, Y=5, Z=2" мы имеем: 0 & 1. 0 не равен единице,из этого следует,что здесь конъюнкция ложна. Кроме конъюнкции действий нет,а это значит,что она-это всё выражение.Если конъюнкция здесь ложная,то и выражение ложное,соотв.оно имеет значение 0. ответ:0
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Программа на c# вычислить косинус угла между векторами a и b размерностью n=10 по формуле:
{
if (a.Length != b.Length || a.Length == 0) throw new Exception("не верные параметры");
double ab = 0;
double a_length = 0;
double b_length = 0;
for (var i = 0; i < a.Length; i++)
{
ab += a[i] * b[i];
a_length = a[i] * a[i];
b_length = b[i] * b[i];
}
if (a_length * b_length == 0) throw new Exception("Нулевые вектора");
return ab / Math.Sqrt(a_length) / Math.Sqrt(b_length);
}