c++随机函数rand怎么用,c语言随机函数rand
在很多情况下,程序中会用到随机数。在C中,专门用来生成随机数的标准库函数rand(),会生成一个0到32767范围内的无符号整数,即两字节16位整数的最大值。而GNU C产生的随机数范围是2147483647。每次随机调用rand时,范围内的每个数字都有相同的概率被选中。
调用时需要参考头文件cstdlib,示例代码。
//投掷筛子20次,每五行输出一次。
#include stdafx.h
#包括iostream
使用STD:cout;
使用STD:endl;
#包括iomanip
使用STD:setw;
#包含cstdlib
使用STD:rand;
int _tmain(int argc,_TCHAR* argv[])
{
for(int I=1;我我)
{
cout setw(10)(1 rand()% 6);//缩放,6称为缩放因子
如果(i%5==0)
{
cout endl
}
}
返回0;
}
当我们多次执行时,会发现每次执行的结果都是一样的。既然是随机的,为什么呢?
这是因为,rand()产生的其实是一个伪随机数。如果我们想确保每次都不同,我们需要引用一个函数srand(),它为rand设置了一个随机种子。示例代码如下:
#include stdafx.h
#包括iostream
使用STD:cout;
使用STD:endl;
使用STD:CIN;
#包括iomanip
使用STD:setw;
#包含cstdlib
使用STD:rand;
使用STD:srand;
int _tmain(int argc,_TCHAR* argv[])
{
无符号int种子;
Cout 输入随机化种子(它是一个无符号整数);
cin种子;
srand(种子);
for(int I=1;我我)
{
cout setw(10)(1 rand()% 6);//缩放,6称为缩放因子
如果(i%5==0)
{
cout endl
}
}
返回0;
}
1种子是:67。
2种子是76。
3当再次执行后种子仍为76时,结果与上次执行的结果相同:
好的,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。