gmp_libmpz_rrandomb Method |
Namespace: Math.Gmp.Native
Useful for testing functions and algorithms, since this kind of random numbers have proven to be more likely to trigger corner-case bugs. The random number will be in the range 2^(n - 1) to 2^n - 1, inclusive.
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.
// 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); // Generate a random integer in the range [2^(50-1), (2^50)-1]. gmp_lib.mpz_rrandomb(rop, state, 50); // Free all memory occupied by state and rop. gmp_lib.gmp_randclear(state); gmp_lib.mpz_clear(rop);