state)stateを初期化してデフォルトのアルゴリズムをセットします。アルゴリズムは乱数生成の速度とランダム性のバランスを決定しますので,特別な要求が不要のアプリケーションにはデフォルトのものを使用しましょう。現行の実装ではgmp_randinit_mtを使います。Twister)アルゴリズムをセットします。このアルゴリズムは高速で良いランダム性を持っています。2^m2expをセットします。このアルゴリズムではXの低位ビットのランダム性があまり良くありません。最小有効ビットの周期は2以下で,2番目のビットの周期は4以下,・・・となります。Xの上位半分だけを使って生成することに起因します。bits以上の乱数を生成する場合は,反復を繰り返して結果を繋ぎ合わせる他ありません。size)stateを初期化して線型合同法をセットし,gmp_randinit_lc_2exp関数に適用します。sizeであるようにします。成功していれば返り値は非ゼロになります。sizeがテーブルのデータより大きい時にはゼロを返します。sizeの最大値は現状では128です。op)ropを初期化して,アルゴリズムや状態をopからコピーします。...)この関数は廃止予定です。stateと初期化してalgで指定されたアルゴリズムをセットします。今のところGMP_RAND_ALG_LCのみ指定可能で,gmp_randinit_lc_2exp_size関数が使われます。long型変数で,関数に対するsizeを決めるものです。0と指定すると,どちらもGMP_RAND_ALG_LCと指定されたことになります。gmp_randinit関数はグローバル変数であるgmp_errnoにビットをセットしてエラー発生が分かるようにします。GMP_ERROR_INVALID_ARGUMENTとなります。このエラー検知機能はスレッドセーフではありません(不都合であれば代わりにgmp_randinit_lc_2exp_size関数を使って下さい。state)state変数のメモリ領域を全て解放します。