![]() |
#2
czsbc2011-08-28 13:28
|
每丢掷一次必须付费一元
每局结束都可以获得8元,因此若该局丢掷次数超过8次,则表示将会输钱;若丢掷次数少於8次,则表示将会赢

#include<iostream>
#include<iomanip>
#include<ctime>
using namespace std;
int flip()
{
if(rand()%2)
return 0;
else
return 1;
}
int main()
{ srand( (unsigned)time( NULL ) );
int heads=0;
int tails=0;
int m=8;
cout<<"Times"<<setw(10)<<"Heads"<<setw(10)<<"Tails"<<endl;
for(int n=0;n<10000;n++)
{
if(flip()==0)
{ tails++;
m--;}
else
{heads++;
m--;}
if((tails-heads)==3||(heads-tails)==3)
break;}
cout<<n+1<<setw(10)<<heads<<setw(10)<<tails;
if(m>0)
printf("\n赢了%d元\n",m);
else
printf("\n输了%d元\n",-m);
return 0;
}
如何统计得出该游戏是否可以赚钱?#include<iomanip>
#include<ctime>
using namespace std;
int flip()
{
if(rand()%2)
return 0;
else
return 1;
}
int main()
{ srand( (unsigned)time( NULL ) );
int heads=0;
int tails=0;
int m=8;
cout<<"Times"<<setw(10)<<"Heads"<<setw(10)<<"Tails"<<endl;
for(int n=0;n<10000;n++)
{
if(flip()==0)
{ tails++;
m--;}
else
{heads++;
m--;}
if((tails-heads)==3||(heads-tails)==3)
break;}
cout<<n+1<<setw(10)<<heads<<setw(10)<<tails;
if(m>0)
printf("\n赢了%d元\n",m);
else
printf("\n输了%d元\n",-m);
return 0;
}