C++无法真正的取得随机数的(产生的都是些伪随机数)
这是产生伪随机数的一种方法 —— 以时间作种
可能要用到的头文件
#include
#include
#include
srand((unsigned)time(NULL));
for(int i=0;i<1000;i++){
RMB=rand()%2+1;//可以随机产生1或2
cout<<"this time RMB is "<
srand( (unsigned int)time(0));
Sleep(1000);
x = rand() % 2;
那么x就是随机的取值。
但是有一点要注意:加上srand()函数后必需隔1秒左右才能产生新的随机数。
可以用Sleep(1000);实现延时1秒。
头文件包括time.h stdlib.h 好像还有windows.h ,如果不行就加上。
/*
一共三种情况 AA,AB,BA,BB -> AA,AB,BB
*/
#include "Stdio.h"
#include "Conio.h"
#include "stdlib.h"
#include "time.h"
int main(void)
{
int AA,AB,BB,i,tA,tB;
AA=AB=BB=0;
srand(time(0));
for (i=0;i<2000;i++){
tA = rand()&1;
tB = rand()&1;
if(tA)
if(tB)
AB++;
else
AA++;
else
if(tB)
BB++;
else
AB++;
}
printf("两次正面共有%d次,两次反面共有%d次,一正一反共有%d次。",AA,BB,AB);
}
使用rand()函数 rand是一个产生0到32767 之间的一个随即数字 他不接收值的
例如rand()/10
就是随即抽取一个数字(0到32767之间) 除以10
函数名: rand
功 能: 随机数发生器
用 法: void rand(void);
#include
#include
using namespace std;
int main()
{
for(int i=0;i<1000;i++)
{
int m = rand()%2;
int n = rand()%2;
cout<
system("pause");
}