fn spread(points: &[Vector2D]) -> i64 {
    let centre_of_mass: Vector2D = points.iter().cloned().sum::<Vector2D>() / points.len() as i64;

    points
        .iter()
        .cloned()
        .map(|point| (point - centre_of_mass).abs_square())
        .sum()
}
/// Calculates the mean square distance between the satellites and their centre of mass.
/// This gives an indication of when they are most tightly clustered (and hence approximately
/// when the message should appear).
Calculates the mean square distance between the satellites and their centre of mass.
This gives an indication of when they are most tightly clustered (and hence approximately
when the message should appear).
Calculates the mean square distance between the satellites and their centre of mass . This gives an indication of when they are most tightly clustered ( and hence approximately when the message should appear ) .
fn spread(points: &[Vector2D]) -> i64 {
    let centre_of_mass: Vector2D = points.iter().cloned().sum::<Vector2D>() / points.len() as i64;
    points
        .iter()
        .cloned()
        .map(|point| (point - centre_of_mass).abs_square())
        .sum()
}
fn spread ( points : & [ Vector2D ] ) -> i64 { let centre_of_mass : Vector2D = points . iter ( ) . cloned ( ) . sum :: < Vector2D > ( ) / points . len ( ) as i64 ; points . iter ( ) . cloned ( ) . map ( | point | ( point - centre_of_mass ) . abs_square ( ) ) . sum ( ) }
Calculates the mean square distance between the satellites and their centre of mass.
Calculates the mean square distance between the satellites and their centre of mass .
points
&[Vector2D]
points
&[Vector2D]