Pagini recente » Cod sursa (job #2719862) | Cod sursa (job #2674160) | Cod sursa (job #1898037) | Cod sursa (job #279642) | Cod sursa (job #639220)
Cod sursa(job #639220)
#include<fstream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
using namespace std;
inline double Rezolva(int n)
{
int pas,val,nr;
short v[25];
double sol=0.0;
memset(v,0,sizeof(v));
srand(time(0));
for(pas=1;pas<=100000;pas++)
{
nr=n; //trebuie sa obtin n semne de intrebare
while(nr) //cat timp mai sunt semne de intrebare de obtinut
{
val=rand()%n; //generez o pozitie aleatoare pe care voi apasa
if(v[val]==1) nr--; //o noua celula devine semn de intrebare
if(v[val]==2) nr++; //o celula ce era semn de intrebare se reseteaza
v[val]++;
if(v[val]==3) v[val]=0;
sol++;
}
memset(v,0,sizeof(v));
}
pas--;
sol=sol/pas;
return sol;
}
int main()
{
int n,m;
double sol;
freopen("minesweeper.in","r",stdin);
scanf("%d %d",&n,&m);
sol=Rezolva(n*m);
freopen("minesweeper.out","w",stdout);
printf("%.6lf\n",sol);
return 0;
}