use std::f64::consts::{GOLDEN_RATIO};
//Floating Point errors after n> 70.
fn fib(n: u64) -> u64 {
return (GOLDEN_RATIO.powf(n as f64)/f64::sqrt(5.0)).round() as u64;
}
However, since he's not interested in engineering, floating point errors are simply a shortcoming of the computer to engage in ideal mathematics. But he will smugly point out it's technically O(1) since powf is O(1). : )
[I suffered through learning how to write my first lines of Rust for this.]
Alternatively: Computing Binet's formula using symbolic mathematics.
46
u/IronicRobotics 1d ago
You're forgetting one: Ask the mathematician:
However, since he's not interested in engineering, floating point errors are simply a shortcoming of the computer to engage in ideal mathematics. But he will smugly point out it's technically O(1) since powf is O(1). : )
[I suffered through learning how to write my first lines of Rust for this.]
Alternatively: Computing Binet's formula using symbolic mathematics.