ubuntu终端下进行的测试
#include<stdio.h> #include<stdlib.h> int main() { srand(1); int i; for(i=0;i<10;i++) printf("返回的随机数是:%d\n",rand(); }
结果
假如改成取0到5之间的随机数 每次取得值就是一样的了
#include<stdio.h> #include<stdlib.h> int main() { srand(1); int i; for(i=0;i<10;i++) printf("返回的随机数是:%d\n",rand()%5); }
种子假如一样,则每次的序列不都一样么?
解决方案
40
[root@localhost d]# ./a
1804289383
846930886
1681692777
1714636915
1957747793
424238335
719885386
1649760492
596516649
1189641421
[root@localhost d]# ./a
1804289383
846930886
1681692777
1714636915
1957747793
424238335
719885386
1649760492
596516649
1189641421
同样的种子得出同样的序列。
你的截图和本人运行两次的结果对比,可以发现:你的第一个序列是不对的(可能代码不对或不是相同的程序)。
1804289383
846930886
1681692777
1714636915
1957747793
424238335
719885386
1649760492
596516649
1189641421
[root@localhost d]# ./a
1804289383
846930886
1681692777
1714636915
1957747793
424238335
719885386
1649760492
596516649
1189641421
同样的种子得出同样的序列。
你的截图和本人运行两次的结果对比,可以发现:你的第一个序列是不对的(可能代码不对或不是相同的程序)。