2012-07-22 41 views
0

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

回答

7

首先,使用arc4random_uniform以获得在所希望的绝对范围的随机数(为-3〜4这将是7):arc4random_uniform(7)

您可能还会看到arc4random() % max表格,但这会引入模数偏差,从而使分布更加随机,arc4random_uniform是首选。

之后,调整下限:

arc4random_uniform(7) - 3 

apple docs

0

由于arc4random() % n返回从0..n-1的整数,arc4random() % (n - k) + k从k..n-1返回一个。插入k = -5。那是你需要的吗?

+3

根据文档: “arc4random_uniform()建议对像''arc4random()%UPPER_BOUND'结构,因为它避免了 ”模上偏差“,当上限不是二的幂。” – Femaref 2012-07-22 00:08:53

0

如果你希望它在-5而不是从0开始,就减去5

如果你想创建在-3至4范围内的随机数,只要创建从0到7号并从中减去3。

arc4random函数为您提供了一个从零到4,294,967,295的数字。要将它从0改为7,只需除以613,566,756即可。 (或者使用arc4random_uniform以避免任何偏压)