我是 Rust 的新手,我正在尋找一種計算 Rust 產品總和的好方法。
我的意思是如果有一個像 [3, 4, 5] 這樣的向量,我想計算 (3 * 4) (3 * 5) (4 * 5)。
這是我的方法,
fn main() {
let a = [3, 4, 5];
assert_eq!(
47,
[3, 4, 5].iter().enumerate().fold(0, |mut s, (i, v)| {
for ii in i 1..a.len() {
s = *v * a[ii];
}
s
})
);
}
如果你知道更好的,我很想知道!
uj5u.com熱心網友回復:
您可以使用combinations,map并sum或combinations并fold落實產品。
use itertools::Itertools;
fn main() {
let a = [3, 4, 5];
let b: i32 = a.iter().combinations(2).map(|x| x[0] * x[1]).sum();
assert_eq!(b, 47);
let c: i32 = a.iter().combinations(2).fold(0, |acc, x| acc (x[0] * x[1]) );
assert_eq!(c, 47);
}
操場
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/369674.html
上一篇:ffmpeg顏色校正演算法
下一篇:雙向鏈表的歸并排序
