在Objective-C中生成随机数

我主要是一个Java高手,我想要一种生成0到74之间的伪随机数的方法。在Java中,我将使用以下方法:

Random.nextInt(74)

我对关于种子或真正的随机性的讨论不感兴趣,只对你如何在Objective-C中完成同样的任务感兴趣。我搜索了谷歌,那里似乎有很多不同和相互冲突的信息

您应该使用arc4random\u uniform()函数。它使用一种优于rand的算法。你甚至不需要播种

#包括<stdlib.h>
// ...
// ...
int r=arc4random_均匀(74);

arc4random手册页:

名称
arc4random,arc4random\u stir,arc4random\u addrandom--arc4随机数生成器
图书馆
标准C库(libc,-lc)
提要
#包括<stdlib.h>
u_int32_t
arc4random(void);
无效的
ARC4随机搅拌(空隙);
无效的
arc4random_addrandom(无符号字符*数据,整数数据);
描述
arc4random()函数使用arc4密码使用的密钥流生成器,该生成器使用8*8
比特S盒。S盒可以处于大约(2**1700)状态。函数的作用是:返回pseudo-
0到(2**32)-1范围内的随机数,因此具有两倍于rand(3)和
随机(3)。
arc4random_stir()函数从/dev/uradom读取数据,并使用它通过
arc4random\u addrandom()。
在使用arc4random()之前,无需调用arc4random_stir(),因为arc4random()会自动执行
初始化自身。
例子
下面使用
arc4random():
#定义foo4random()(arc4random()%((无符号)RAND_MAX+1))

发表评论