我使用函数random()%x来生成随机数,但每次启动应用程序时,我都会看到它创建或生成相同的数字.
就像我根据随机数随机放置一些图像一样,无论我运行应用程序多少次,我都会看到所有图像都放在同一个地方.
Ale*_*lds 14
在您的应用程序委托中:
- (void) applicationDidFinishLaunching:(UIApplication *)application
{
srandom(time(NULL));
// ...
for (int i = 0; i < 100; i++) {
NSLog(@"%d", random());
}
}
Run Code Online (Sandbox Code Playgroud)
这种方法的原因是因为伪随机数生成器需要一个起始值或种子值.通过使用时间,您在每次执行时更有可能获得不同的"随机"数字序列.
如果未指定种子值,则在每次执行时使用相同的种子,从而生成相同的序列.这通常是不期望的行为,但在某些情况下,能够生成相同的序列(例如,用于测试算法)是有用的.
在大多数情况下,您需要指定将在运行之间更改的种子值,这是当前时间派上用场的地方.