我有一段代码给我带来一些麻烦并且令人困惑。Objective C随机数
下面是一段代码...
int r = rand() % 100;
printf("Random number: %u", r);
为什么它打印7每一次?根据这本书,它应该打印任何数字0-100我相信...我错了吗?
我有一段代码给我带来一些麻烦并且令人困惑。Objective C随机数
下面是一段代码...
int r = rand() % 100;
printf("Random number: %u", r);
为什么它打印7每一次?根据这本书,它应该打印任何数字0-100我相信...我错了吗?
你必须先播种它:
srandom(time(NULL));
它实际上是更好地只使用arc4random:
int r = arc4random() % 100;
printf("Random number: %u", r);
啊...谢谢你的成功,为什么arc4random更好?只是偏好还是代表只是更好? –
还是这样更简单?感谢您的快速回答。 –
'srandom '用于播种'random',使用'srand'播种'rand',当你将结果应用模数时(比如在这里完成),最好使用'arc4random_uniform'而不是'arc4random'。 – rmaddy
随机数是伪随机的。为了让它们显得随意,它们根据您的设计在任意时间播种。如果您希望播种和“随机”数字生成同时发生,请改为使用arc4random
,这也提供了其他好处。
删除了无关信息。请关注这个问题。 – vikingosegundo
@qegal这不是重复的这个问题。它没有解释在这里被问到的结果。 – rmaddy
@rmaddy - 的确如此。无论如何可以废除接近的选票吗? – pasawaya