需要先介绍一下 srand ( seed ) 函数,指定 rand() 函数的起始值
rand() 它会返回一个 [ seed, RAND_MAX ) 之间的随机整数,RAND_MAX(0x7FFF)
如果程序中的 seed 不人为改变,那么每次 rand() 函数产生的随机数数列都是相同的
如果想使 rand() 产生的随机数数列不相同,那么就应该给 srand( seed ) 中的 seed 一个变值
如果不设置 srand( seed ) 中的 seed 值,那么 rand() 会自动调用 srand( 1 )
#include <iostream>
#include <Windows.h>
#include <time.h>
using namespace std;
//不设置 srand(seed)
void srand_seed()
{
int irand, n = 3;
cout << "不设置 srand(seed)" << endl;
while (n--)
{
for (int i = 0; i < 10; i++)
{
irand = rand();
cout << irand << " ";
}
cout << endl;
}
cout << endl;
}
//srand( 1 )
void srand_1()
{
int irand, n = 3;
cout << "设置 srand(1)" << endl;
srand(1);
while (n--)
{
for (int i = 0; i < 10; i++)
{
irand = rand();
cout << irand << " ";
}
cout << endl;
}
cout << endl;
}
//自定义 seed
void srand_time()
{
int irand, n = 3;
cout << "设置 srand(time(NULL))" << endl;
while (n--)
{
Sleep(3000);
srand((unsigned)time(NULL));
for (int i = 0; i < 10; i++)
{
irand = rand();
cout << irand << " ";
}
cout << endl;
}
}
int main()
{
srand_seed();
srand_1();
srand_time();
int n;
while(cin >> n && n){}
return 0;
}