第1个回答 2020-06-12
正常,rand()的结果是随机的,所以完全有可能重复啊。
就像丢色子一样,前后完全有可能重复。
要想没有重复的,只能自己手动去重(比如发现跟前面重复了,就丢弃,重新生成)
第2个回答 2020-03-28
是这样的,c++里的随机数是由一个种子按照固定的算法生成的随机数的序列,如果种子不变,那么随机数序列不变,你每次运行都是取到同一个随机数序列的第一个随机数,所以结果一样。
你可以使用srand(time(null));放在你的随机数函数前面,这句的意思是利用系统时间来作为种子,即种子是会改变的,那么每次的结果也就不一样了。
第3个回答 2020-06-16
1.0可以省略;
rand函数产生的随机数不是真正的随机数,rand函数其实是通过一个算法实现的,只要给出初值,再用过那个算法生成的;
用srand(
(unsigned)time(
NULL
)
)或srand(
(unsigned)time(
0
)来给出随机数的种子,就是用系统时间作为rand的初值(系统时间每时每刻都变,可看作随机数),用srand函数要包括在#include
头文件中
第4个回答 2020-09-14
可以用srand()来设置
随机数
的种子,否则你每次运行程序将得到同样的随机数序列,也就是说rand()函数产生的是
伪随机数
。
1.0当然可以省略,rand()函数产生的是0到RAND_MAX之间的随机数。
srand(
(unsigned)time(
NULL
)
);
这样来初始化一下,就可以用了