3

object -c (iOS 用) で ( Nelder-Mead シンプレックス アルゴリズムを使用して) 関数を最小化する手順の一部として、乱数生成を使用しています。私が使用arc4random()したのは、a) シードする必要がなく、b) などの代替手段よりも高品質の乱数が得られるという理由で、どこでも推奨されているように思われるためですrand() and random()。を使用して0と1の間のdoubleを生成します

#define ARC4RANDOM_MAX      0x100000000
-(double) Rnd{
return (double)arc4random() / (double)ARC4RANDOM_MAX ; }

ただし、手順をテストするには、繰り返し可能な乱数のシーケンスを生成する必要があり、これを行うための初期化方法への参照が見つかりませんarc4random()arc4random()繰り返し可能なシーケンスを与えるために初期化できない場合はありますか? もしそうなら、すべてのテストが異なる答えになるときに、自動化された単体テストをどのように実装できますか? からの「低品質」の乱数を使用する必要がありrandom()ますか? ご協力いただきありがとうございます。

4

1 に答える 1

1

このarc4random関数は、制御できないプールから乱数を取得します。再現性を提供するメカニズムはありません。単体テストの場合は、別のものを使用する必要があります。

于 2013-01-11T05:03:32.347 に答える