Skip to content

Instantly share code, notes, and snippets.

@llSourcell
Created November 27, 2020 14:24
Show Gist options
  • Save llSourcell/8ed4e38ac1a9174326985bf65f0fa173 to your computer and use it in GitHub Desktop.
Save llSourcell/8ed4e38ac1a9174326985bf65f0fa173 to your computer and use it in GitHub Desktop.
use std::io;
use std::process;
fn main() {
//Step 0 - Collect data
let x: [f64; 8] = [44.0, 46.0, 59.0, 67.0, 74.0, 85.0, 97.0, 43.0];
let y: [f64; 8] = [1200.0, 2400.0, 3200.0, 3000.0, 5000.0, 4000.0, 6000.0, 6050.0];
println!("Total profit per month");
//Step 1 - Compute the average of X
let mut xtotal: f64 = 0.0;
let mut x_iter = 0;
while x_iter != x.len() {
xtotal = xtotal + x[x_iter];
x_iter = x_iter+1;
}
let x_len = x.len().to_string().trim().parse::<f64>().unwrap();
let xmean: f64 = xtotal/x_len;
println!("The average of X = {}", xmean);
//Step 2 - Compute the average of Y
let mut ytotal: f64 = 0.0;
let mut y_iter = 0;
while y_iter != y.len() {
ytotal = ytotal + y[y_iter];
y_iter = y_iter+1;
}
let y_len = y.len().to_string().trim().parse::<f64>().unwrap();
let ymean: f64 = ytotal/y_len;
println!("The Average of Y = {}", ymean);
//Compute and store more values for linear regression
//namely x2, y2, and xy
let mut yy: f64 = 0.0;
let mut xy: f64 = 0.0;
let mut xx: f64 = 0.0;
x_iter = 0;
while x_iter != x.len() {
xy = xy+(x[x_iter]*y[x_iter]);
xx = xx+(x[x_iter]*x[x_iter]);
yy = yy+(y[x_iter]*y[x_iter]);
x_iter = x_iter+1;
}
println!("Sigma value of yy = {}", yy);
println!("Sigma value of xy = {}", xy);
println!("Sigma value of xx = {}", xx);
//Compute B in y = mx + b
// y sum * x^2 - x sum * xy / num x * x2 - x sum * x sum
let b: f64 = ((ytotal*xx)-(xtotal*xy))/((x_len*xx)-(xtotal*xtotal));
println!("the y intercept is = {}", b);
//Compute M in y = mx + b
let m: f64 = ((x_len*xy)-(xtotal*ytotal))/((x_len*xx)-(xtotal*xtotal));
println!("the slope is = {}", m);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment