如何创建4到10的随机数

时间:2013-08-15 22:24:17

标签: objective-c random

如何在范围内创建随机数?我尝试了下面的代码,但它没有完成我的任务。

int fromNumber = 10;
int toNumber = 30;
int randomNumber = (arc4random()%(toNumber-fromNumber))+fromNumber; 

2 个答案:

答案 0 :(得分:4)

有4个数字,介于4和10之间。为此,建议使用arc4random_uniform()而不是arc4random()。

int randomNumber = arc4random_uniform(7) + 4

更一般的情况是arc4random_uniform(upper_bound - lower_bound + 1) + lower_bound

答案 1 :(得分:1)

<强>更新
之前我没有意识到arc4random_uniform(),所以我推荐https://stackoverflow.com/a/18262992/2611613作为答案。我在下面链接的答案仍然很好地解释了这个问题的一般方法,而不用担心语言。


你的答案应该有效。不知道你有什么问题,我只能猜测问题。

目前你有

int randomNumber = ( arc4random() % ( toNumber - fromNumber ) ) + fromNumber; 

这将产生一个范围[from-to],其中你永远不会得到值toNumber。如果您希望随机数能够包含toNumber

int randomNumber = ( arc4random() % ( toNumber - fromNumber + 1 ) ) + fromNumber; 

通过这种方式,你可以获得[从 - 到]的范围。

您可以查看https://stackoverflow.com/a/363732/2611613,了解其工作原理。