Durante la ricerca di come generare un numero casuale usando Rust, mi sono imbattuto nel seguente esempio. Tuttavia, non sembra funzionare ... l'esempio non sembra mostrare a quale versione di Rust si applica, quindi forse non è aggiornato, o forse ho sbagliato qualcosa.Come posso generare un numero casuale all'interno di un intervallo in Rust?
// http://static.rust-lang.org/doc/master/std/rand/trait.Rng.html
01 use std::rand;
02 use std::rand::Rng;
03
04 fn main() {
05 let mut rng = rand::task_rng();
06 let n: uint = rng.gen_range(0u, 10);
07 println!("{}", n);
08 let m: float = rng.gen_range(-40.0, 1.3e5);
09 println!("{}", m);
10 }
Quando si tenta di compilare questo, i seguenti risultati:
test_rand002.rs:6:17: 6:39 error: type `@mut std::rand::IsaacRng` does not
implement any method in scope named `gen_range`
test_rand002.rs:6 let n: uint = rng.gen_range(0u, 10);
^~~~~~~~~~~~~~~~~~~~~~
test_rand002.rs:8:18: 8:46 error: type `@mut std::rand::IsaacRng` does not
implement any method in scope named `gen_range`
test_rand002.rs:8 let m: float = rng.gen_range(-40.0, 1.3e5);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to 2 previous errors
V'è un altro esempio (come segue) sulla stessa pagina (sopra) che fa il lavoro. Tuttavia, non fa esattamente quello che voglio, anche se potrei adattarlo.
altro esempio (che funziona):
use std::rand;
use std::rand::Rng;
fn main() {
let mut rng = rand::task_rng();
let x: uint = rng.gen();
println!("{}", x);
println!("{:?}", rng.gen::<(f64, bool)>());
}
Come posso generare un numero casuale "semplice" utilizzando Rust (ad es: I64) entro un determinato intervallo (ad esempio: da 0 a n)?
collegamento ai http://static.rust-lang.org/doc/master/ significare la versione è maestro. –
Una breve nota che nessuna delle risposte seguenti sembra funzionare per Rust 1.7. – frabcus