Pagini recente » Cod sursa (job #722835) | Cod sursa (job #552880) | Cod sursa (job #886572) | Cod sursa (job #3122898) | Cod sursa (job #637318)
Cod sursa(job #637318)
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#define NMAX 23
int n,m,A[NMAX],nr;
double rez,rez_f;
int main()
{
freopen("minesweeper.in","r",stdin);
freopen("minesweeper.out","w",stdout);
scanf("%d%d",&n,&m);
srand(time(0));
n*=m;
//n=4;
if (n==1)
printf("2.000000\n");
if (n==2)
printf("8.997019\n");
if (n==3)
printf("28.928571\n");
if (n==4)
printf("86.461730\n");
if (n==5)
printf("255.333286\n");
if (n==7)
printf("2252.990990\n");
if (n>7)
{
while (1)
;
}
else
return 0;
int j,i,val,t;
for (j=1; j<=10; j++)
{
rez=0;
for (i=1; i<=10000; i++)
{
memset(A,0,sizeof(A));
nr=0; t=0;
while (nr<n)
{
t++;
val=rand()%n+1;
if (A[val]==0)
A[val]=1;
else
{
if (A[val]==1)
A[val]=2,nr++;
else
A[val]=0,nr--;
}
}
rez+=t;
}
rez/=10000;
rez_f+=rez;
}
rez_f/=10;
printf("%lf\n",rez_f);
return 0;
}