我使用随机数生成作为最小化函数的过程的一部分(使用Nelder单纯形算法)在目标-c(用于iOS)中。我之所以使用arc4random()
,是因为它似乎在任何地方都被推荐,理由是:( a)它不需要播种;( b)它提供比rand() and random()
这样的替代方案更高质量的随机数。我在0到1之间生成双倍
#define ARC4RANDOM_MAX 0x100000000
-(double) Rnd{
return (double)arc4random() / (double)ARC4RANDOM_MAX ; }
然而,为了测试这个过程,我需要生成可重复的随机数序列,而且我找不到任何方法来初始化arc4random()
。是否arc4random()
不能被初始化以提供一个可重复的序列?如果是这样的话,当每个测试都会产生不同的答案时,任何人如何实现自动化单元测试?我需要使用来自random()
的“低质量”随机数吗?谢谢你的帮助。
发布于 2013-01-11 05:03:32
arc4random
函数从它无法控制的池中获取随机数。它没有提供可重复性的机制。对于单元测试,您必须使用其他的东西。
https://stackoverflow.com/questions/14271969
复制相似问题