主题:【原创】关于换不换门的问题,大家讨论。 -- 淡紫若兰
int doors[3][2] = {0}; //数据,全局,第一维为中奖位置,第二维为用户选择位置,如果被选择,则置一
int WinTimes = 0; //中奖次数,全局,每次调用时由调用函数置0。
void Dothegame()
{
//选定一个位置做为中奖位置, doors第一维该位置1;
int rd = rand();
int Bingo = rd%3;
doors[Bingo][0] = 1;
//选定一位置作为指定位置,doors第二维该位置1;
int choose = rand()%3;
doors[choose][1] = 1;
//去掉一个未中奖且未被选择位置
for(int i = 0; i <= 2; i++)
{
if((doors[i][0]==0) && (doors[i][1]==0))
break;
}
//此时i为被去掉位置。
//更改选择
int Final= 3-i-choose;
if(doors[Final][0] == 1)
{
WinTimes++;
}
}
void CTest231Dlg::OnOK()
{
this->UpdateData();
WinTimes = 0;
// srand( (unsigned)time( NULL ) );
srand( (unsigned)GetTickCount ( ) );
m_list.ResetContent();
int t = this->m_times;
for(int a = 0; a<t; a++)
{
memset(doors, 0, sizeof(doors));
Dothegame();
}
ShowResult();
// CDialog::OnOK();
}
- 相关回复 上下关系8
🙂同意。但LZ没有说清楚那个主持人是一定要打开没宝的门 水晶 字20 2009-06-16 23:44:46
🙂我的直觉是不换…… Levelworm 字94 2009-06-16 16:39:28
🙂这个... 看来大家的直觉很不一样啊 CatOH 字191 2009-06-16 18:01:53
🙂【原创】当时的代码。有点乱。
🙂【讨论】更加变态的变种 卷心菜 字757 2009-06-11 06:12:32