- #include
- #include
- #include
- #include
- #include
-
- #define TIMES 10000000 //实验越多,频率就接近于概率
-
- int main()
- {
- long long change=0,unchange=0,i;
- int car, choice;
- for (i=1; i< TIMES ;i++)
- {
- car = 1 + rand() % 3; //奖品位置随机
- choice = 1 + rand() % 3; //人为选择随机
- if (car == choice)
- unchange++; //第一次选择就中奖且没有换门的情况
- else
- change++; //其他情况:就是不确定第一次是否中奖,选择换门
- }
- printf("没有换门:中奖次数为:%d次\n",unchange);
- printf("中奖率为:%f\n",1.0*unchange/TIMES);
-
- printf("换门后:中奖次数为:%d次\n",change);
- printf("中奖率为:%f",1.0*change/TIMES);
-
- return 0;
- }

- #include
- #include
- #include
- #include
- #include
-
- bool xuanze(bool change);
- void fun(int n,bool change);
-
- void fun(int n,bool change)
- {
- int wins=0;
- for(int i=0;i
- {
- if(xuanze(change))
- wins++;
- }
- printf("中奖次数为:%d次\n",wins);
- printf("中奖率为:%f\n",1.0*wins/n);
- }
-
- bool xuanze(bool change)
- {
- //srand(time(0));
- //sleep(2);
- int n1=rand()%3+1;
- //sleep(2);
- int n2=rand()%3+1;
- if(n1 != n2)
- return change ? true:false;
- else
- return change ? false:true;
- }
-
- int main()
- {
- int num=0;
- printf("请输入本次实验次数\n");
- scanf("%d",&num);
- printf("不换门:");
- fun(num,false);
- printf("换门:");
- fun(num,true);
-
- return 0;
- }
运行结果:
