具有上下文的确定性随机数生成器?

Mic*_*chs 6 c random objective-c seed

我正在寻找一个种子随机数生成器,它创建一个数字池作为上下文.它不一定太好.它用于游戏,但重要的是,游戏引擎的每个实例都有自己的数字池,因此不同的游戏实例甚至游戏中使用随机数的其他部分都不会破坏游戏的确定性特征.生成的数字.

目前我正在使用rand(),显然没有这个功能.

有没有能够做我想做的c或Objective-c发电机?

Eit*_*n T 7

使用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               */
Run Code Online (Sandbox Code Playgroud)

手册页明确指出伪随机数序列可以重复(因此它是确定性的):

srand()函数将其参数设置为要返回的新伪随机整数序列的种子rand().通过使用相同的种子值调用,这些序列是可重复的srand().


编辑(澄清):
请注意,手册页表明它srand()是可重入的,也不是线程安全的.
我认为通过"不同的游戏实例 "你意味着不同的过程,在这种情况下可以使用它.
但是,如果您计划在同一过程中更改种子,则无法获得所需的功能.在这种情况下,我建议rand_r()改为使用.看看这个问题以供参考.