随机数函数哑火(Random number function is misfiring)

2019-06-24 14:59发布

我有一个需要从1-100的随机整数一个非常简单的iPhone应用程序。

我有一个按钮,调用随机数函数,那么显示出来。

-(IBAction)buttonReleased;
{
    srandom(time(NULL)); 
    int theNum = random() % 100 + 1;
    numberDisplay.text = [NSString stringWithFormat:@"%d", theNum];
}

问题是,如果我迅速按下按钮,有时它不会显示一个新的随机数。

Answer 1:

问题是你与播种time

time仅每秒更新一次,所以如果你在一秒内点击它,你会播种发生器用相同的号码,这意味着你会得到相同的编号。

你应该只播种一次,在应用程序的开始。



Answer 2:

srandom(time(NULL)); 

不这样做,每次生成一个随机数。 这样做一次,你的应用程序启动时。

原因:每次通话时间srandom()用具体的数字,你会得到的伪随机数从随机相同的序列()。 所以,如果你在同一秒调用你的函数两次,你会得到相同的号码。



文章来源: Random number function is misfiring