我用arc4random来创建一个随机数,有没有办法告诉arc4random从例如-5开始而不是0?因为我想创建一个在 -3,4到4,3范围内的随机数,所以在iOS开发中我还没有那么好,那么如果不能使用arc4random,我还有什么其他可能性?(链接赞赏如果theres一个指南或类似的东西)iOS arc4random不是从0开始
0
A
回答
7
首先,使用arc4random_uniform
以获得在所希望的绝对范围的随机数(为-3〜4这将是7):arc4random_uniform(7)
。
您可能还会看到arc4random() % max
表格,但这会引入模数偏差,从而使分布更加随机,arc4random_uniform
是首选。
之后,调整下限:
arc4random_uniform(7) - 3
0
由于arc4random() % n
返回从0..n-1的整数,arc4random() % (n - k) + k
从k..n-1返回一个。插入k = -5。那是你需要的吗?
0
如果你希望它在-5而不是从0开始,就减去5
如果你想创建在-3至4范围内的随机数,只要创建从0到7号并从中减去3。
arc4random
函数为您提供了一个从零到4,294,967,295的数字。要将它从0改为7,只需除以613,566,756即可。 (或者使用arc4random_uniform
以避免任何偏压)
相关问题
- 1. 为什么应该从0开始而不是从1开始?
- 2. 酒吧从1开始而不是0
- 3. 从1开始代码而不是0?
- 4. 从位置1开始NSArray不是0
- 5. 与轴(不是从0开始)
- 6. arc4random初始化
- 7. SoundJS不是从iOS开始的
- 8. 代表日期从长,从0年开始,而不是从1970年开始
- 9. 正则表达式不能从0开始,但可以为0或0开始,
- 10. 为什么增量计数从0开始而不是从1开始?
- 11. 从范围开始的Excel VBA数组从-1开始而不是0
- 12. 使gnuplot的x轴从0开始,而不是从第一个日期开始
- 13. NSMutableArray:initWithObjects是否从索引0开始?
- 14. NSMutableArray的索引不是以0开始
- 15. 嵌套循环不从0开始
- 16. Highstock - 比较图表不从0%开始
- 17. WilliamChart轴颜色&不要从0开始
- 18. ASP.NET图表 - Y值不从0开始
- 19. 宽度动画不从0开始
- 20. 静态Int不从0开始
- 21. PChart - Y轴不从0开始
- 22. X轴从0开始
- 23. 分页从0开始
- 24. 我并非从0开始
- 25. TFS Online - 从0开始$(Rev.r)0
- 26. 为什么我的集合决定从0开始而不是1开始?
- 27. 开始视图不在0 0
- 28. Scriptaculous的Effect.Grow()从集合大小开始,而不是0
- 29. 如何可以从1开始的阵列不是0
- 30. HTML CSS饼图定位不是从0度开始
根据文档: “arc4random_uniform()建议对像''arc4random()%UPPER_BOUND'结构,因为它避免了 ”模上偏差“,当上限不是二的幂。” – Femaref 2012-07-22 00:08:53