9 stable releases
|new 4.2.2||Jun 2, 2023|
|4.2.1||Oct 11, 2022|
|4.2.0||Aug 9, 2022|
|4.1.3||Jul 31, 2022|
|2.0.0||Mar 15, 2020|
#60 in Algorithms
2,482 downloads per month
Used in 2 crates
Implements a selection of Mersenne Twister random number generators.
A very fast random number generator of period 219937-1. (Makoto Matsumoto, 1997).
The Mersenne Twister algorithms are not suitable for cryptographic uses, but are ubiquitous. See the Mersenne Twister website. A variant of Mersenne Twister is the default PRNG in Ruby.
This crate optionally depends on
rand_core and implements
RngCore on the
RNGs in this crate.
Add this to your
[dependencies] rand_mt = "4.2.2"
Then create a RNG like:
use rand_mt::Mt64; let mut rng = Mt64::new_unseeded(); assert_ne!(rng.next_u64(), rng.next_u64());
rand_mt has several optional features that
are enabled by default:
- rand-traits - Enables a dependency on
rand_core. Activating this feature implements
SeedableRngon the RNGs in this crate.
- std - Enables a dependency on the Rust Standard Library. Activating this
std::error::Errorimpls on error types in this crate.
Mersenne Twister requires approximately 2.5 kilobytes of internal state. To make
the RNGs implemented in this crate practical to embed in other structs, you may
wish to store the RNG in a
Minimum Supported Rust Version
This crate requires at least Rust 1.47.0. This version can be bumped in minor releases.
rand_mt is distributed under the terms of either the
MIT License or the
Apache License (Version 2.0).
rand_mt is derived from
1.1.1 which is Copyright
(c) 2015 rust-mersenne-twister developers.