有没有一种简单的方法可以将 F# 中的数组项相乘?
因此,例如,我想从样本中计算总体平均值,我会将观察值乘以频率,然后除以样本数。
let array_1 = [|1;32;9;5;6|];;
let denominator = Array.sum(array_1);;
denominator;;
let array_2 = [|1;2;3;4;5|];;
let productArray = [| for x in array_1 do
for y in array_2 do
yield x*y |];;
productArray;;
let numerator = Array.sum(productArray);;
numerator/denominator;;
不幸的是,这会产生这样的产品数组:-
val it : int [] =
[|1; 2; 3; 4; 5; 32; 64; 96; 128; 160; 9; 18; 27; 36; 45; 5; 10; 15; 20; 25;
6; 12; 18; 24; 30|]
这是所有事物的乘积,而我在点积之后(每个 i 的 x.[i]*y.[i])。
不幸的是,在 for 循环中添加 i 变量和索引似乎不起作用。
在这里使用的最佳解决方案是什么?