Lin*_*int 4 iphone random xcode objective-c arc4random
int randomNumber = (arc4random() % 83) + 1;
Run Code Online (Sandbox Code Playgroud)
这是产生"最随机"数字的最佳方式吗?或者有更好的方法来生成随机数?
Chr*_*ung 13
当你使用时arc4random,避免使用%线性同余生成器(这是通常使用的算法rand)的一个缺陷:低阶位不是随机的.
但是,你仍然有截断的问题:即,因为(1 << 32) % 83是77,这意味着76号在0到(略)看起来比77和82之间的数字为避免这种情况更频繁,你应该扔掉传入的值(即通话arc4random再次)如果它在上面(1 << 32) / 83 * 83.
(我假设范围arc4random从0到2 32 -1.相应地调整上述说明.)
| 归档时间: |
|
| 查看次数: |
8835 次 |
| 最近记录: |