python3 <<'PY' import math,random a=0.25; b=1.0/12 def best3(y1,y2,N=400000): alpha=2*a+2*b-y1-y2; mu1=a+b-y1; nu1=a+b best=-1 for _ in range(N): q=[alpha*random.random() for i in range(3)] s=sum(q); q=[v/s*alpha for v in q] u=[random.random() for i in range(3)]; ss=sum(u); aa=[mu1*v/ss for v in u] if any(aa[i]>q[i]+1e-12 for i in range(3)): continue c1=random.random()*min(q[0],nu1) a3=aa[2]; q3=q[2]; a2=aa[1]; q2=q[1]; a1=aa[0]; q1=q[0] if abs(a2/q2-a3/q3)<1e-14: continue c2=(a-a1*c1/q1-a3*(nu1-c1)/q3)/(a2/q2-a3/q3) c3=nu1-c1-c2 if c2<-1e-11 or c2>q2+1e-11 or c3<-1e-11 or c3>q3+1e-11: continue cc=[c1,c2,c3] val=0.0 for i in range(3): qi=q[i]; ai=aa[i]; ci=cc[i] bi=qi-ai; di=qi-ci val+=math.sqrt(max(0,a*ai*ci))+math.sqrt(max(0,b*ai*di))+math.sqrt(max(0,b*bi*ci))+math.sqrt(max(0,a*bi*di)) if val>best: best=val return best for y1,y2 in [(0.035,0.095),(0.03,0.09),(0.04,0.1)]: print(y1,y2,best3(y1,y2,300000)) PY