随机数的生成
1.最简单的随机数生成
只要产生随机数而不需要设定范围的话,只要用rand()就可以了,
rand()会返回一随机数值, 范围在0至RAND_MAX 间。
RAND_MAX定义在stdlib.h, 其值为2147483647。
代码如下:
# include <iostream>
using namespace std;
int main()
{
for(int i=0;i<10;i++)
{
cout<<rand()<<endl;
}
}
运行结果生成10个随机数:
41
18467
6334
26500
19169
15724
11478
29358
26962
24464
2.获取一定范围内的随机数的话,对上面生成随机数作取余操作即可;
代码如下:
# include <iostream>
using namespace std;
int main()
{
for(int i=0;i<10;i++)
{
cout<<rand()%10<<endl;
}
}
运行结果:
1
7
4
0
9
4
8
8
2
4
3.获取随机生成的小数,在上面操作的基础上,作除法操作即可;
代码如下:
# include <iostream>
# define NUMMOD 20000
# define NUMDEV 10000.0
using namespace std;
int main()
{
for(int i=0;i<10;i++)
{
cout<<(rand()%NUMMOD)/NUMDEV<<endl;
}
}
运行结果: NUMMOD 决定生成随机数的值的范围
NUMDEV 决定取余后生成的小数的范围
0.0041
1.8467
0.6334
0.65
1.9169
1.5724
1.1478
0.9358
0.6962
0.4464
4.每次运行rand()函数,生成的随机数是不变的,如果用srand()函数就可以为rand()函数生成随机数种子,每次运行rand()函数的结果就会大不相同。
# include <iostream>
# include<ctime>
# define NUMMOD 10
//# define NUMDEV 10000.0
using namespace std;
int main()
{
srand(time(0));//);//time(0)返回的是系统的时间(从1970.1.1午夜算起),单位:秒
for(int i=0;i<10;i++)
{
cout<<(rand()%NUMMOD)<<endl;
}
system("pause");
}
这样,每次运行就会产生不同的随机数。