編集者注: このコード例は、Rust 1.0 より前のバージョンのものであり、構文的に有効な Rust 1.0 コードではありません。このコードの更新されたバージョンではさまざまなエラーが発生しますが、回答には依然として貴重な情報が含まれています。
Rust を使用して乱数を生成する方法の次の例に出くわしましたが、機能していないようです。この例は、それが適用される Rust のバージョンを示していないため、古いバージョンであるか、何か間違っている可能性があります。
// http://static.rust-lang.org/doc/master/std/rand/trait.Rng.html
use std::rand;
use std::rand::Rng;
fn main() {
let mut rng = rand::task_rng();
let n: uint = rng.gen_range(0u, 10);
println!("{}", n);
let m: float = rng.gen_range(-40.0, 1.3e5);
println!("{}", m);
}
これをコンパイルしようとすると、次のエラーが発生します。
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);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
同じページ (上記) に動作する別の例 (次のような) があります。ただし、適応させることはできますが、私が望んでいることを正確に行うことはできません。
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)>());
}
i64
Rust (例: ) を使用して特定の範囲 (例: 0 から n) 内で「単純な」乱数を生成するにはどうすればよいですか?