#include <stdio.h>
#include<stdlib.h>
#include<time.h>
#define NUM_DOORS 3

int monty(int change)
{
    int i = 0, doors[NUM_DOORS] = {0};
           //各ドア，1ならあたり，-1なら見せた
    doors[rand()%NUM_DOORS] =1;
    int mychoice = rand()%NUM_DOORS;//選ぶ
    
    //ここで見せる
    for(i = 0; i < NUM_DOORS; i++)
        if(doors[i] == 0 && i != mychoice)
        {
            doors[i] = -1;
            break;
        }
    if(change) //扉を変更するとき
        for(i = 0; i < NUM_DOORS; i++)
            if(doors[i] != -1 && i  != mychoice)
            {
                mychoice = i;
                break;
            } 
    return (doors[mychoice] == 1);  //当たりか否か
}

int main()
{
    int i = 0, num_win = 0;
    srand((unsigned)time(NULL));

    //変更なしを10000回試す
    for(i = 0; i < 100000; i++)  if(monty(0)) num_win++;
    printf("変更無しでの勝率は%.6f\n", (double)num_win / i);

    //変更ありを10000回試す
    num_win = 0;
    for(i = 0; i < 100000; i++)  if(monty(1)) num_win++;
    printf("変更ありでの勝率は%.6f\n", (double)num_win / i);
 
    return 0;
}
