GMP Native Interface for .NET
gmp_libmpz_urandomm Method |
Generate a uniform random integer in the range 0 to n - 1, inclusive.
Namespace: Math.Gmp.Native
Assembly: Math.Gmp.Native (in Math.Gmp.Native.dll) Version: 1.0.0.0 (1.0.0.0)
Syntax
public static void mpz_urandomm( mpz_t rop, gmp_randstate_t state, mpz_t n )
Public Shared Sub mpz_urandomm ( rop As mpz_t, state As gmp_randstate_t, n As mpz_t )
public: static void mpz_urandomm( mpz_t^ rop, gmp_randstate_t^ state, mpz_t^ n )
static member mpz_urandomm : rop : mpz_t * state : gmp_randstate_t * n : mpz_t -> unit
Parameters
- rop
- Type: Math.Gmp.Nativempz_t
The result integer. - state
- Type: Math.Gmp.Nativegmp_randstate_t
The random number generator state. - n
- Type: Math.Gmp.Nativempz_t
The operand integer.
Remarks
The variable state must be initialized by calling one of the gmp_randinit functions (GNU MP - Random State Initialization) before invoking this function.
The random number functions of GMP come in two groups; older function that rely on a global state, and newer functions that accept a state parameter that is read and modified. Please see the GNU MP - Random Number Functions for more information on how to use and not to use random number functions.
Examples
// Create, initialize, and seed a new random number generator. gmp_randstate_t state = new gmp_randstate_t(); gmp_lib.gmp_randinit_mt(state); gmp_lib.gmp_randseed_ui(state, 100000U); // Create, initialize, and set the value of rop to 0. mpz_t rop = new mpz_t(); gmp_lib.mpz_init(rop); // Create, initialize, and set a large integer. mpz_t n = new mpz_t(); char_ptr value = new char_ptr("123 456 789 012 345 678 901"); gmp_lib.mpz_init_set_str(n, value, 10); // Generate a random integer in the range [0, n-1]. gmp_lib.mpz_urandomm(rop, state, n); // Free all memory occupied by state, rop, and n. gmp_lib.gmp_randclear(state); gmp_lib.mpz_clears(rop, n, null);
' Create, initialize, and seed a new random number generator. Dim state As New gmp_randstate_t() gmp_lib.gmp_randinit_mt(state) gmp_lib.gmp_randseed_ui(state, 100000UI) ' Create, initialize, and set the value of rop to 0. Dim rop As New mpz_t() gmp_lib.mpz_init(rop) ' Create, initialize, and set a large integer. Dim n As New mpz_t() Dim value As New char_ptr("123 456 789 012 345 678 901") gmp_lib.mpz_init_set_str(n, value, 10) ' Generate a random integer in the range [0, n-1]. gmp_lib.mpz_urandomm(rop, state, n) ' Free all memory occupied by state, rop, and n. gmp_lib.gmp_randclear(state) gmp_lib.mpz_clears(rop, n, Nothing)
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also