Code Bye

关于rand(),一样的种子每次都产生不同的随机数……

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
同样的种子得出同样的序列。
你的截图和本人运行两次的结果对比,可以发现:你的第一个序列是不对的(可能代码不对或不是相同的程序)。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于rand(),一样的种子每次都产生不同的随机数……