/* Collection of code snippets by Arne Vajhøj */
/* (likely posted to comp.os.vms/INFO-VAX, INFO-TPU, MACRO32, eksperten.dk, newz.dk, LinkedIn or other place sometime between 1990 and now) */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 1000000

int ranpick()
{
    return ((rand() >> 4) % 3);
}

int main()
{
    int i,success,correct,pick,newpick,remove;
    srand(time(NULL));
    // keep
    success = 0;
    for(i=0;i<N;i++)
    {
        correct = ranpick();
        pick = ranpick();
        do
        {
            remove = ranpick();
        } while(remove == pick || remove == correct);
        if(pick == correct) success++;
    }
    printf("keep strategy success rate = %6.4f\n",success/(double)N);
    // change
    success = 0;
    for(i=0;i<N;i++)
    {
        correct = ranpick();
        pick = ranpick();
        do
        {
            remove = ranpick();
        } while(remove == pick || remove == correct);
        do
        {
            newpick = ranpick();
        } while(newpick == pick || newpick == remove);
        if(newpick == correct) success++;
    }
    printf("change strategy success rate = %6.4f\n",success/(double)N);
    return 0;
}
