mirror of
https://github.com/fluencelabs/examples
synced 2025-04-29 04:32:14 +00:00
* init reorg * updated readme * fix CI * remove outdated ipfs-node example * add Readme * update readme, add config file Co-authored-by: folex <0xdxdy@gmail.com>
28 lines
704 B
Rust
28 lines
704 B
Rust
use std::collections::HashMap;
|
|
|
|
pub fn mode<'a>(data: impl ExactSizeIterator<Item = &'a u64>) -> (u32, u64) {
|
|
let frequencies = data
|
|
.into_iter()
|
|
.fold(HashMap::<u64, u32>::new(), |mut freqs, value| {
|
|
*freqs.entry(*value).or_insert(0) += 1;
|
|
freqs
|
|
});
|
|
|
|
let mode = frequencies
|
|
.iter()
|
|
.max_by_key(|&(_, count)| count)
|
|
.map(|(value, _)| value)
|
|
.unwrap();
|
|
|
|
(*frequencies.get(&mode).unwrap(), *mode)
|
|
}
|
|
|
|
pub fn mean<'a>(data: impl ExactSizeIterator<Item = &'a u64>) -> Option<f64> {
|
|
let n = data.len() as u64;
|
|
if n < 1 {
|
|
return None;
|
|
}
|
|
let res = (data.sum::<u64>() / n) as f64;
|
|
Some(res)
|
|
}
|