我使用随机数生成作为在objective-c(对于iOS)中最小化函数(使用 Nelder-Mead单纯形算法 )的过程的一部分。我使用了arc4random()
,因为它似乎建议到处都是因为a)它不需要播种; b)它提供的质量高于rand() and random()
等替代品。我使用
#define ARC4RANDOM_MAX 0x100000000
-(double) Rnd{
return (double)arc4random() / (double)ARC4RANDOM_MAX ; }
但是,为了测试程序,我需要生成可重复的随机数序列,我找不到任何关于初始化arc4random()
来执行此操作的方法的引用。是不是arc4random()
无法初始化以提供可重复序列的情况?如果是这样,当每次测试都会产生不同的答案时,如何实施自动单元测试呢?我是否需要使用random()
中的“质量较低”的随机数?谢谢你的帮助。
答案 0 :(得分:1)
arc4random
函数从池中获取无法控制的随机数。它没有提供可重复性的机制。对于单元测试,您必须使用其他东西。