我主要是一个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))