随机数function失灵

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

我有一个按钮,调用随机数function,然后显示它。

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

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

问题是你随着time播种。

time只是每秒更新一次,所以如果你在第二秒内点击它,你将使用相同的数字为生成器播种,这意味着你将得到相同的数字。

您应该只在申请开始时播种一次。

 srandom(time(NULL)); 

每次生成随机数时都不要这样做。 当您的应用程序启动时,请执行一次。

原因:每次使用特定数字调用srandom()时,您将从random()获得相同的伪随机数序列。 因此,如果您在同一秒内调用您的函数两次,您将得到相同的数字。