Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Objective-C中为随机生成器设定种子并创建随机整数_Objective C_Random - Fatal编程技术网

如何在Objective-C中为随机生成器设定种子并创建随机整数

如何在Objective-C中为随机生成器设定种子并创建随机整数,objective-c,random,Objective C,Random,我在Objective-C中看到过一些随机整数的例子,但所有人都在抱怨每次应用程序运行时都使用相同的数字序列。我读过关于播种随机数的书,但我甚至不知道这意味着什么 即使在应用程序重新启动后,如何每次都以不同的方式生成随机数 是否可以将某些数据存储在NSUserDefaults中,然后根据这些数据生成不同的值?您可以使用以下代码为随机数设定种子: srand([[NSDate date] timeIntervalSince1970]); 这将每次给你一个新的随机序列。我一直在使用arc4rand

我在Objective-C中看到过一些随机整数的例子,但所有人都在抱怨每次应用程序运行时都使用相同的数字序列。我读过关于播种随机数的书,但我甚至不知道这意味着什么

即使在应用程序重新启动后,如何每次都以不同的方式生成随机数


是否可以将某些数据存储在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;