[Exercism][Rust] Parallel Letter Frequency
題目網址(需登入 Exercism)
簡單來說,就是要用 concurrency 的方式,將「計算文章中每個字母(數字和標點不計)出現的次數」,分配給 worker_count
個 thread 去做,最後再整合在一起。
輸入的資料,第一個是 &str
的 array slice,第二個是 worker_count
。
題目網址(需登入 Exercism)
簡單來說,就是要用 concurrency 的方式,將「計算文章中每個字母(數字和標點不計)出現的次數」,分配給 worker_count
個 thread 去做,最後再整合在一起。
輸入的資料,第一個是 &str
的 array slice,第二個是 worker_count
。
題目網址(需登入 Exercism)
這個題目在 Rust 語言方面,沒有什麼太困難的地方。所以重點都是在 modular arithmetic 的運算上。
use rand::Rng;
pub fn private_key(p: u64) -> u64 {
let mut rng = rand::thread_rng();
rng.gen_range(2..p)
}
pub fn public_key(p: u64, g: u64, a: u64) -> u64 {
modular_exp(g, a, p)
}
pub fn secret(p: u64, b_pub: u64, a: u64) -> u64 {
modular_exp(b_pub, a, p)
}