我使用 arc4random 创建一个随机数,有没有办法告诉 arc4random 从例如 -5 而不是 0 开始?因为我想创建一个-3,4到4,3范围内的随机数,我在iOS开发中还没有那么好,所以如果它不适用于arc4random,我还有什么其他可能性(如果有指南或类似的东西)
问问题
2330 次
3 回答
7
首先,arc4random_uniform
用于获取所需绝对范围内的随机数(对于 -3 到 4,它将是 7)arc4random_uniform(7)
:.
您可能还会看到形式arc4random() % max
,但这会引入模偏差,使分布不那么随机,arc4random_uniform
这是首选。
之后,调整你的下限:
arc4random_uniform(7) - 3
于 2012-07-22T00:08:15.790 回答
0
因为arc4random() % n
从 0..n-1 返回一个整数,arc4random() % (n - k) + k
所以从 k..n-1 返回一个。插入 k=-5。那是你需要的吗?
于 2012-07-22T00:07:48.923 回答
0
如果您希望它从 -5 而不是 0 开始,只需减去 5。
如果要创建-3到4范围内的随机数,只需创建一个从0到7的数字并从中减去3。
该arc4random
函数为您提供一个从零到 4,294,967,295 的数字。要将其更改为从 0 到 7 的数字,只需除以 613,566,756。(或用于arc4random_uniform
避免任何偏见。)
于 2012-07-22T00:07:58.117 回答