fn main() {
let numbers = vec![3.4, 1.8, 4.3, 5.0, 6.2];
let mean = calculate_mean(&numbers);
let stddev = calculate_standard_deviation(&numbers, mean);
println!("Mean: {:.2}", mean);
println!("Standard Deviation: {:.2}", stddev);
}
fn calculate_mean(data: &[f64]) -> f64 {
if data.is_empty() {
return 0.0;
}
let sum: f64 = data.iter().sum();
sum / data.len() as f64
}
fn calculate_standard_deviation(data: &[f64], mean: f64) -> f64 {
let n = data.len();
if n < 2 {
return 0.0;
}
let sum_of_squared_differences: f64 = data
.iter()
.map(|value| {
let diff = value - mean;
diff * diff
})
.sum();
let variance = sum_of_squared_differences / (n as f64 - 1.0);
variance.sqrt()
}
/*
run:
Mean: 4.14
Standard Deviation: 1.66
*/