0

我使用 arc4random 创建一个随机数,有没有办法告诉 arc4random 从例如 -5 而不是 0 开始?因为我想创建一个-3,4到4,3范围内的随机数,我在iOS开发中还没有那么好,所以如果它不适用于arc4random,我还有什么其他可能性(如果有指南或类似的东西)

4

3 回答 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 回答