MCPcopy Create free account
hub / github.com/Open-Quant/openquant / n_choose_k

Function n_choose_k

crates/openquant/src/backtesting_engine.rs:573–586  ·  view source on GitHub ↗
(n: usize, k: usize)

Source from the content-addressed store, hash-verified

571}
572
573fn n_choose_k(n: usize, k: usize) -> Result<usize, String> {
574 if k > n {
575 return Err("k cannot exceed n".to_string());
576 }
577 let k_eff = k.min(n - k);
578 let mut numerator: u128 = 1;
579 let mut denominator: u128 = 1;
580 for i in 0..k_eff {
581 numerator *= (n - i) as u128;
582 denominator *= (i + 1) as u128;
583 }
584 let comb = numerator / denominator;
585 usize::try_from(comb).map_err(|_| "combination count overflowed usize".to_string())
586}
587
588fn combinations(n: usize, k: usize) -> Vec<Vec<usize>> {
589 let mut out = Vec::new();

Callers 1

cpcv_path_countFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected