Objective C中的多个随机数生成器

sie*_*hie 3 random objective-c prng

在我目前的项目中,我需要多个随机数生成器,因为我需要能够彼此独立地重复它们的序列.到目前为止,我没有找到任何方法来实现标准的Objective-c随机数生成器,因为它们只有一个全局状态.

我认为有一个随机数生成器类可以解决我的问题.我可以创建几个我可以单独重置的实例.

是这样的吗?我无法在目标c中找到任何随机数生成器实现.我想避免自己实现它,因为我没有随机数的经验,我认为这是很难做到的.

Ric*_*III 6

我有一个基于Mersenne Twister算法的随机类,你可以从我的Dropbox 这里获得.

它相当陈旧,并没有为ARC编译,但这并没有让它变得不那么好:)

示例代码:

MTRandom *randWithSeed = [[MTRandom alloc] initWithSeed:12345];
double d = [rand nextDouble];
int i = [rand nextInt];

MTRandom *timeBasedRand = [MTRandom new]; // seeds with current time
double d2 = [timeBasedRand nextDouble];
int i2 = [timeBasedRand nextInt];
Run Code Online (Sandbox Code Playgroud)

编辑:如果你想真的很酷,你可以使用这个:

在此输入图像描述 资源

  • 不错的xkcd参考.:-) (2认同)