凭感觉写的,也不知道对错
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
const int N = 1e8;
int main()
{
srand((unsigned)time(NULL));
int scount = 0; // select count
int ccount = 0; // change count
for(int i = 0; i < N; i++){
int carpos = rand()%3+1; //代表汽车位置
int selectpos = rand()%3+1; //选择的位置
int nopos; //主持人打开的空位置
for(int j = 1; j <= 3; j++){
if(j != carpos && j != selectpos) nopos = j; // 找到一个就没有车,又没有被选的位置
}
if(carpos == selectpos) scount ++;
else if(carpos == 6-nopos-selectpos) ccount++; //三个位置号加起来一定等于6 所以6-nopos-selectpos就是剩下的有车的位置
}
double x = 1.0;
cout << x*scount/N << ' ' << x*ccount/N << endl;
}
结果如下: