192
Méthodes de Monte-Carlo pour le s jeux à un joueur
cons t int MaxScore = 101;
long long Coeff [ MaxSize] [ MaxSize] ;
float P [MaxSize] [MaxSize] [MaxLevel];
flo at Ptwo [MaxSize] [MaxSize] [MaxLevel];
void init () {
for (int i=
O; i < MaxSize ; i++ )
for (int j =
O; j < MaxSize ; j++)
Coeff [ i] [ j ] = 0;
for (int i=
O; i < MaxSize ; i++ )
Coeff [i] (0) =
for (int i = 1; i
for (int j = 1;
Coeff [ i] [ j ]
1;
<
j
=
MaxSize ; i ++ )
< i + 1 ; j ++ )
Coeff [ i
-
1 ] [ j
-
Coeff [ i
-
1] [ j ] ;
for (in t i =
O; i < MaxSize ; i++ )
for (int j =
O; j < MaxSize ; j++)
1 ]
for (int k =
O; k < MaxLevel ; k++ ) {
p [i] [j] [k] =
-1.0;
Ptwo [i] [j] [k] =
-1.0;
}
}
float Pscore (int s, int d, int l);
flo at Pleftscore ( int s, int d, int l) {
if ( l == 0)
+
return C (d - 1, s-1) / pow (2, d-1);
return Pscore ( s
-
1, d - 1, l);
}
float Prightscore ( int s, int d, int l) {
if ( l == 0)
return C (d
1, s) / pow (2 , d- I);
return Pscore (s , d - 1, 1 );
}
flo at Pleftmove ( int s, int d, int l) {
flo at p =
Prightscore ( s, d, l) / 2;
for (int i =
O; i < s; i++ )
}
p + =
P r i g h t s c o r e ( i , d , 1 ) ;
return p;
Méthodes de Monte-Carlo pour le s jeux à un joueur
cons t int MaxScore = 101;
long long Coeff [ MaxSize] [ MaxSize] ;
float P [MaxSize] [MaxSize] [MaxLevel];
flo at Ptwo [MaxSize] [MaxSize] [MaxLevel];
void init () {
for (int i=
O; i < MaxSize ; i++ )
for (int j =
O; j < MaxSize ; j++)
Coeff [ i] [ j ] = 0;
for (int i=
O; i < MaxSize ; i++ )
Coeff [i] (0) =
for (int i = 1; i
for (int j = 1;
Coeff [ i] [ j ]
1;
<
j
=
MaxSize ; i ++ )
< i + 1 ; j ++ )
Coeff [ i
-
1 ] [ j
-
Coeff [ i
-
1] [ j ] ;
for (in t i =
O; i < MaxSize ; i++ )
for (int j =
O; j < MaxSize ; j++)
1 ]
for (int k =
O; k < MaxLevel ; k++ ) {
p [i] [j] [k] =
-1.0;
Ptwo [i] [j] [k] =
-1.0;
}
}
float Pscore (int s, int d, int l);
flo at Pleftscore ( int s, int d, int l) {
if ( l == 0)
+
return C (d - 1, s-1) / pow (2, d-1);
return Pscore ( s
-
1, d - 1, l);
}
float Prightscore ( int s, int d, int l) {
if ( l == 0)
return C (d
1, s) / pow (2 , d- I);
return Pscore (s , d - 1, 1 );
}
flo at Pleftmove ( int s, int d, int l) {
flo at p =
Prightscore ( s, d, l) / 2;
for (int i =
O; i < s; i++ )
}
p + =
P r i g h t s c o r e ( i , d , 1 ) ;
return p;
