目次 - SDL 3.0 API(機能別) - 標準ライブラリ - SDL_rand_r

SDL_rand_r

正の整数n未満の疑似乱数を生成する

ヘッダ

SDL3/SDL_stdinc.h

構文

Sint32 SDL_rand_r(Uint64 *state, Sint32 n);

引数

Uint64 *state現在の乱数状態へのポインタ. NULL不可
Sint32n発生させる乱数の数. 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()で初期化すること.

生成のランダム順序には品質の保証がないため, セキュリティ(暗号, パスワード)や金銭(ルートボックス(ガチャ), カジノ)が関係する場合は使用してはならない. 異なる目的のための様々な乱数ライブラリが存在するので, 目的に合ったものを選択するべきである.

スレッドセーフ

この関数はスレッド間で状態ポインタを共有しない限りスレッドセーフである.

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_rand_r - SDL Wiki