diff options
Diffstat (limited to 'rand/examples')
-rw-r--r-- | rand/examples/monte-carlo.rs | 39 | ||||
-rw-r--r-- | rand/examples/monty-hall.rs | 10 |
2 files changed, 21 insertions, 28 deletions
diff --git a/rand/examples/monte-carlo.rs b/rand/examples/monte-carlo.rs index 9162996..39c779f 100644 --- a/rand/examples/monte-carlo.rs +++ b/rand/examples/monte-carlo.rs @@ -11,7 +11,7 @@ //! //! Imagine that we have a square with sides of length 2 and a unit circle //! (radius = 1), both centered at the origin. The areas are: -//! +//! //! ```text //! area of circle = πr² = π * r * r = π //! area of square = 2² = 4 @@ -24,28 +24,25 @@ //! the square at random, calculate the fraction that fall within the circle, //! and multiply this fraction by 4. -#![cfg(feature="std")] - - -extern crate rand; +#![cfg(feature = "std")] use rand::distributions::{Distribution, Uniform}; fn main() { - let range = Uniform::new(-1.0f64, 1.0); - let mut rng = rand::thread_rng(); - - let total = 1_000_000; - let mut in_circle = 0; - - for _ in 0..total { - let a = range.sample(&mut rng); - let b = range.sample(&mut rng); - if a*a + b*b <= 1.0 { - in_circle += 1; - } - } - - // prints something close to 3.14159... - println!("π is approximately {}", 4. * (in_circle as f64) / (total as f64)); + let range = Uniform::new(-1.0f64, 1.0); + let mut rng = rand::thread_rng(); + + let total = 1_000_000; + let mut in_circle = 0; + + for _ in 0..total { + let a = range.sample(&mut rng); + let b = range.sample(&mut rng); + if a*a + b*b <= 1.0 { + in_circle += 1; + } + } + + // prints something close to 3.14159... + println!("π is approximately {}", 4. * (in_circle as f64) / (total as f64)); } diff --git a/rand/examples/monty-hall.rs b/rand/examples/monty-hall.rs index 0932c5e..9fe5839 100644 --- a/rand/examples/monty-hall.rs +++ b/rand/examples/monty-hall.rs @@ -26,13 +26,10 @@ //! //! [Monty Hall Problem]: https://en.wikipedia.org/wiki/Monty_Hall_problem -#![cfg(feature="std")] +#![cfg(feature = "std")] - -extern crate rand; - -use rand::Rng; use rand::distributions::{Distribution, Uniform}; +use rand::Rng; struct SimulationResult { win: bool, @@ -40,8 +37,7 @@ struct SimulationResult { } // Run a single simulation of the Monty Hall problem. -fn simulate<R: Rng>(random_door: &Uniform<u32>, rng: &mut R) - -> SimulationResult { +fn simulate<R: Rng>(random_door: &Uniform<u32>, rng: &mut R) -> SimulationResult { let car = random_door.sample(rng); // This is our initial choice |