在以下情况:http://www.fredosaurus.com/notes-cpp/misc/random.html
它提到如果我们想生成一个范围内的随机数1-10
,我们可以执行以下操作:
r = (rand() % 10) + 1;
为什么我们要添加1
?您能解释一下这个过程是如何进行的吗?
并且,关于初始化随机数生成器,它提到执行以下操作:
srand(time(0));
你能解释一下这个过程吗?而且,如果我们根本不初始化会发生什么?
Thanks.
你加1,因为你想要随机数1-10,而不是0-9,会怎样%
没有做+1
.
例如,10 % 10 == 0
and 9 % 10 == 9
,所以这给你 0-9。
Adding +1
会将这个区间“移动”到 1-10->10 % 10 + 1 == 1
and 9 % 10 + 1 == 10
EDIT:对不起,忘记你了srand
问题。rand()
生成相同的数字序列,除非你调用srand
并在调用之前用不同的值“播种”随机数生成器rand()
。所以在这里time(0)
用当前时间播种随机数生成器,这会为您提供所有时间的不同值,您可以调用rand()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)