使用gmp生成一個隨機數。
函數解釋
使用默認算法初始化狀態。 是速度和隨機性之間的折衷,建議用於無特殊要求的應用:
void gmp_randinit_default (gmp_randstate_t state)
將初始種子設置到state:
void gmp_randseed_ui (gmp_randstate_t state, unsigned long int seed)
生成一個範圍爲0到2^n-1(含)的均勻分佈的隨機整數,賦值到 rop:
void mpz_urandomb (mpz_t rop, gmp_randstate_t state, mp_bitcnt t n)
源代碼
#include <stdio.h>
#include <gmp.h>
#include <time.h>
// mpz_urandomm.c
int main()
{
clock_t time = clock();
gmp_randstate_t grt;
gmp_randinit_default(grt);
gmp_randseed_ui(grt, time);
mpz_t key;
mpz_init(key);
mpz_urandomb(key, grt, 16);
gmp_printf("%Zd\n", key);
mpz_clear(key);
}