feat: oven

This commit is contained in:
Ahmet Kaan GÜMÜŞ 2024-11-20 00:20:40 +03:00
parent e9cd102d0c
commit 46c53f17d3

View file

@ -12,10 +12,10 @@ fn main() {
println!("Hello, world!");
println!("Temperature = ");
let temperature = get_float_input();
let mut temperature = get_float_input();
println!("Iteration = ");
let iteration: u64 = get_float_input() as u64;
println!("Max Iteration = ");
let max_iteration: u64 = get_float_input() as u64;
println!("Upper Bound = ");
let upper_bound = get_float_input();
@ -27,7 +27,7 @@ fn main() {
let mut x2: f64 = rand::thread_rng().gen_range(lower_bound..=upper_bound);
let mut give_up_counter: u8 = 0;
for i in 0..iteration {
for i in 0..max_iteration {
x1 = bound_detective(x1, upper_bound, lower_bound);
x2 = bound_detective(x2, upper_bound, lower_bound);
@ -56,6 +56,8 @@ fn main() {
}
give_up_counter = give_up_return.1;
temperature = turbofan_oven(temperature, i, max_iteration);
let original_result = calculate(x1, x2);
let new_result = calculate(new_x1, new_x2);
let neighbour_dif = new_result - original_result;
@ -99,6 +101,32 @@ fn magic_trick(x: f64, what_happened: Bound) -> f64 {
}
}
fn turbofan_oven(mut temperature: f64, i: u64, max_iteration: u64) -> f64 {
let where_we_are = (i as f64 / max_iteration as f64) * 100.0;
if where_we_are < 5.0 {
} else if where_we_are < 10.0 {
temperature -= (1.0 / 100.0) * temperature;
} else if where_we_are < 15.0 {
temperature += (1.0 / 100.0) * temperature;
} else if where_we_are < 20.0 {
temperature -= (1.0 / 100.0) * temperature;
} else if where_we_are < 25.0 {
temperature += (1.0 / 100.0) * temperature;
} else if where_we_are < 30.0 {
temperature -= (1.0 / 100.0) * temperature;
} else if where_we_are < 35.0 {
temperature += (1.0 / 100.0) * temperature;
} else if where_we_are < 40.0 {
temperature -= (1.0 / 100.0) * temperature;
} else if where_we_are < 50.0 {
temperature += (2.0 / 100.0) * temperature;
} else if where_we_are < 60.0 {
} else if where_we_are < 70.0 {
temperature -= (5.0 / 100.0) * temperature;
}
temperature
}
fn give_up(x1: f64, x2: f64, new_x1: f64, new_x2: f64, mut give_up_counter: u8) -> (bool, u8) {
if x1 == 0.0 && x2 == 0.0 {
println!("Touched 0.0 for both variables");