iOS arc4random不是从0开始

时间:2012-07-22 00:03:42

标签: ios

我使用arc4random来创建一个随机数,有没有办法告诉arc4random以例如-5而不是0开始?因为我想创建一个范围内的随机数  -3,4到4,3,我在iOS开发方面还不是很好,所以如果不能使用arc4random,我还有什么其他的可能性(如果指南或类似的东西,链接会受到赞赏)

3 个答案:

答案 0 :(得分:7)

首先,使用arc4random_uniform获取所需绝对范围内的随机数(对于-3到4,它将是7):arc4random_uniform(7)

您可能还会看到arc4random() % max形式,但这会引入模偏差,使得分布不那么随机,arc4random_uniform是首选。

之后,调整你的下限:

arc4random_uniform(7) - 3

apple docs

答案 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来避免任何偏见。)