Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Enter your code here
- use std::collections::HashMap;
- fn main() {
- /*Leemos los dos ingresos de datos*/
- let _n = "6";
- let vector = "1 2 3 4 5 6";
- //Convertimos en u32
- //Convertimos en un vector u32
- let mut vector: Vec<i32> = vector
- .split_whitespace()
- .map(|s| s.parse().unwrap())
- .collect();
- // Obtenemos la media
- println!("{}", media(&vector));
- // obtenemos la mediana
- println!("{}", mediana(&mut vector));
- // obtenemos la moda
- println!("{}", moda(&vector));
- }
- fn media(vector: &[i32]) -> f32 {
- let suma: i32 = vector.iter().sum();
- suma as f32 / vector.len() as f32
- }
- fn mediana(vector: &mut [i32]) -> f32 {
- vector.sort();
- let mitad = vector.len() / 2;
- let residuo = vector.len() % 2;
- if residuo == 0 {
- media(&vector[((mitad - 1)..=mitad)])
- } else {
- vector[mitad] as f32
- }
- }
- fn moda(vector: &[i32]) -> i32 {
- let mut repeticiones = HashMap::new();
- for &valor in vector {
- *repeticiones.entry(valor).or_insert(0) += 1;
- }
- repeticiones
- .into_iter()
- .max_by_key(|&(_, count)| count)
- .map(|(val, _)| val)
- .expect("No se puede obtener moda de numeros cero");
- println!("{}", repeticiones);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement