我使用arc4random来创建一个随机数,有没有办法告诉arc4random以例如-5而不是0开始?因为我想创建一个范围内的随机数 -3,4到4,3,我在iOS开发方面还不是很好,所以如果不能使用arc4random,我还有什么其他的可能性(如果指南或类似的东西,链接会受到赞赏)
答案 0 :(得分:7)
首先,使用arc4random_uniform
获取所需绝对范围内的随机数(对于-3到4,它将是7):arc4random_uniform(7)
。
您可能还会看到arc4random() % max
形式,但这会引入模偏差,使得分布不那么随机,arc4random_uniform
是首选。
之后,调整你的下限:
arc4random_uniform(7) - 3
答案 1 :(得分:0)
由于arc4random() % n
返回0..n-1中的整数,arc4random() % (n - k) + k
将从k..n-1返回一个。插入k = -5。这就是你需要的吗?
答案 2 :(得分:0)
如果你想让它从-5而不是0开始,只需减去5。
如果要创建-3到4范围内的随机数,只需创建一个0到7之间的数字,然后从中减去3。
arc4random
函数为您提供从0到4,294,967,295的数字。要将其更改为0到7之间的数字,只需除以613,566,756。 (或使用arc4random_uniform
来避免任何偏见。)