pub fn fibonacci_fast(n: u32) -> u128Expand description
n -Fibonachchi soni — O(log n) (“fast doubling”).
Formulalar:
F(2k) = F(k)·(2·F(k+1) − F(k)), F(2k+1) = F(k)² + F(k+1)².
Natija u128 da qaytadi — n = 180 gacha bemalol.
§Misol
use rust_algorithms::numbers::{fibonacci, fibonacci_fast};
assert_eq!(fibonacci_fast(10), 55);
assert_eq!(fibonacci_fast(90) as u64, fibonacci(90).unwrap());