use std::fs::File; use std::io::Read; const BUFFER_SIZE: usize = 65536; fn main() { let all_sums_quantity: i32 = 100_000_000; let mut above_200_sums_quantity: i32 = 0; let mut f = File::open("random_source").unwrap(); let mut buffer = [0u8; BUFFER_SIZE]; let total_cycles: i32 = all_sums_quantity / BUFFER_SIZE as i32; for _i in 0..total_cycles { f.read_exact(&mut buffer).unwrap(); for p in buffer.windows(2) { if p[0] as u16 + p[1] as u16 > 200 { above_200_sums_quantity += 1; } } } let probability_of_a: f64 = (above_200_sums_quantity) as f64 / (all_sums_quantity) as f64; println!("Кількість експериментів: {all_sums_quantity}"); println!("Кількість сум двох байтів що більше за 200: {above_200_sums_quantity}"); println!( "Статистична ймовірність того, що сума двох випадкових байтів є більша за 200: {probability_of_a:.10}" ); }