arc4random初始化

时间:2013-01-11 04:58:52

标签: objective-c arc4random

我使用随机数生成作为在objective-c(对于iOS)中最小化函数(使用 Nelder-Mead单纯形算法 )的过程的一部分。我使用了arc4random(),因为它似乎建议到处都是因为a)它不需要播种; b)它提供的质量高于rand() and random()等替代品。我使用

生成0到1之间的双精度数
#define ARC4RANDOM_MAX      0x100000000
-(double) Rnd{
return (double)arc4random() / (double)ARC4RANDOM_MAX ; }

但是,为了测试程序,我需要生成可重复的随机数序列,我找不到任何关于初始化arc4random()来执行此操作的方法的引用。是不是arc4random()无法初始化以提供可重复序列的情况?如果是这样,当每次测试都会产生不同的答案时,如何实施自动单元测试呢?我是否需要使用random()中的“质量较低”的随机数?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

arc4random函数从池中获取无法控制的随机数。它没有提供可重复性的机制。对于单元测试,您必须使用其他东西。