Sint32 SDL_rand_r(Uint64 *state, Sint32 n);
| Uint64 * | state | 現在の乱数状態へのポインタ. NULL不可 |
| Sint32 | n | 発生させる乱数の数. nは正である必要がある |
(Sint32) [0 .. n-1]の乱数を戻す.
高速かつrand() % nよりも高品質な方法が使われている.
確率はn=100万でおよそ99.9%で均等である.
均等性はnが小さいほど高く, nが大きいほど低くなる.
使用例: 6面ダイスの目を生成したい場合はSDL_rand_r(6) + 1とする. +1は0..5を1..6にするためにある.
Sint32の全範囲の疑似乱数を生成したい場合は(Sint32)SDL_rand_bits()を使用すること.
再現性が必要な場合は, 初めにSDL_srand()で初期化すること.
生成のランダム順序には品質の保証がないため, セキュリティ(暗号, パスワード)や金銭(ルートボックス(ガチャ), カジノ)が関係する場合は使用してはならない. 異なる目的のための様々な乱数ライブラリが存在するので, 目的に合ったものを選択するべきである.
この関数はスレッド間で状態ポインタを共有しない限りスレッドセーフである.