随机数功能是失火

时间:2009-07-01 10:19:31

标签: c objective-c iphone random

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

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

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

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

2 个答案:

答案 0 :(得分:8)

问题是你正在使用time播种。

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

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

答案 1 :(得分:3)

srandom(time(NULL)); 

每次生成随机数时都不要这样做。当您的申请开始时,请执行一次。

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

相关问题