// util.h
#include <time.h>
int createRandom(min, max) {
srand(time(NULL));
if (!min) min = 0;
return rand() % max + min;
}
我试着打印出time(NULL)
, 发现都是相同的。
1
yahoo21cn 2015-05-06 17:27:08 +08:00
因为在同一秒内所以导致随机种子相同了吧
|
2
XadillaX 2015-05-06 17:28:18 +08:00 1
`srand()` 函数在整个程序里面只需要执行一次就够了。
|
3
123123 2015-05-06 18:21:29 +08:00
就如楼上说的执行一次就够了
不过你这个种子值设置的也有问题 会导致每次生成同样的数列 |
4
bdbai 2015-05-06 18:27:29 +08:00 via iPhone
把生成的随机数存起来 下次发现重复就等一会
|
5
ho121 2015-05-06 18:48:27 +08:00 via Android
为什么在头文件中写函数定义
|
6
bjzhush 2015-05-06 19:44:09 +08:00
加个参数seed,传入当前毫秒级时间
|
7
sandideas 2015-05-06 19:48:58 +08:00
用time当做随机数的种子就可以了
|
8
DrakeLeung OP @XadillaX 我试了可以。但是这样的话,我怎么封装`createNumber()`函数啊?
|