#include #include #include double x,y,z,s,alpha,beta,h,hh,P,Pmax; double Bin(double N, double k, double hh); /* We begin by setting two constants, hh 0.415) s =0.415; for(z=0;z<=3*y;z=z+hh) { alpha = 1 + s - 3*x - y - z; beta = 2 - s - 2*y + z; P = Bin(1,x,h); P = P*Bin(1-x,y,h); P = P*Bin(3*(1-x-y),alpha - 7*h,7*h); P = P* Bin(3*y+3*h, z,h); P = P*pow(x + h, beta - 2*h); P = P*pow(1 - x, alpha - 5*h); P = P*pow(1 - x - y, z); P = P*pow(x + y + 2*h, 3*y - z -h); if(P>Pmax) { Pmax=P; printf("Pmax=%8f x=%8f y=%8f z=%8f \n",P,x,y,z); } } } } } /* The procedure Bin provides an upper bound on the function a^a/( b^b (a-b)^{a-b}) where 0 a/2) return pow(a,a)/(pow(b,b)*pow(a-b,a-b)); return pow(2,a); }