如何在Objective-C中为随机生成器设定种子并创建随机整数
我在Objective-C中看到过一些随机整数的例子,但所有人都在抱怨每次应用程序运行时都使用相同的数字序列。我读过关于播种随机数的书,但我甚至不知道这意味着什么 即使在应用程序重新启动后,如何每次都以不同的方式生成随机数如何在Objective-C中为随机生成器设定种子并创建随机整数,objective-c,random,Objective C,Random,我在Objective-C中看到过一些随机整数的例子,但所有人都在抱怨每次应用程序运行时都使用相同的数字序列。我读过关于播种随机数的书,但我甚至不知道这意味着什么 即使在应用程序重新启动后,如何每次都以不同的方式生成随机数 是否可以将某些数据存储在NSUserDefaults中,然后根据这些数据生成不同的值?您可以使用以下代码为随机数设定种子: srand([[NSDate date] timeIntervalSince1970]); 这将每次给你一个新的随机序列。我一直在使用arc4rand
是否可以将某些数据存储在NSUserDefaults中,然后根据这些数据生成不同的值?您可以使用以下代码为随机数设定种子:
srand([[NSDate date] timeIntervalSince1970]);
这将每次给你一个新的随机序列。我一直在使用
arc4random
,你不需要种子。你可以试一试。这里有一个建议
使用arc4random()而不是
random()或rand()。它使用
/开发/Uradom并生成更好的
伪随机数。rand()和
random()基本上是坏的random
数字发生器
参见:man arc4random
#包括
picknumber=arc4random()%3+1;
另一篇SO文章的可能副本,在目标周中生成随机数我可以使用arc4Random()获得1到10之间的随机数吗?picknumber=arc4Random()%10+1;这不会改变iOS模拟器中random()的序列
#include <stdlib.h>
picknumber = arc4random() % 3 + 1;