を使用srand
してシードを設定してから、次を使用しますrand()
。
unsigned int seed = 10; /* Choose an arbitrary value for the seed */
int r;
srand(seed); /* Set the seed */
r = rand(); /* Generate a random number */
マニュアルページには、疑似乱数のシーケンスが繰り返し可能である可能性があることが明示的に記載されています(したがって、決定論的です)。
このsrand()
関数は、引数を、によって返される疑似乱数整数の新しいシーケンスのシードとして設定しますrand()
。これらのシーケンスは、同じシード値で呼び出すことで繰り返すことができます。srand()
編集(説明):
マニュアルページには、srand()
再入可能でもスレッドセーフでもないと記載されていることに注意してください。「異なるゲームインスタンス
」
とは、異なるプロセスを意味すると思いました。その場合は、それを使用しても問題ありません。
ただし、同じプロセス内でシードを変更することを計画している場合は、必要な機能を取得できません。この場合、代わりに使用することをお勧めします。参考までにこの質問を見てください。
rand_r()