python3 <<'EOF' V=[[6.54,1.63,4.71,6.64,5.51,3.29,6.94,3.11],[6.05,0.70,1.41,4.56,4.18,5.37,5.30,2.32],[6.76,3.83,1.47,6.65,3.21,6.57,0.97,3.16]] p=[1.0,0.88,0.73,0.61] rf=[0.98,0.96,0.94,0.92] pr=[0.25,0.45,0.30] pg=[0.75,0.40,0.15] A=[3,2,4,1] B=[1,3,1,2] def ev(g,r): lg=0 lr=0 rg=0 rr=0 for s in range(3): wg=pr[s]*pg[s] wr=pr[s]*(1-pg[s]) for k in range(4): if g[k]==r[k]: lg+=wg*p[k]*V[s][g[k]] lr+=wr*p[k]*V[s][r[k]] else: lg+=wg*p[k]*rf[k]*V[s][g[k]] lr+=wr*p[k]*rf[k]*V[s][r[k]] ptg=[1]*8 ptr=[1]*8 cov=[0]*8 for k in range(4): if g[k]==r[k]: cov[g[k]]=1 else: ptg[g[k]]+=A[k] ptg[r[k]]+=B[k] ptr[r[k]]+=A[k] ptr[g[k]]+=B[k] for t in range(8): if cov[t]: ptg[t]=0 ptr[t]=0 dg=sum(ptg) dr=sum(ptr) rg+=wg*0.4*sum(ptg[j]*V[s][j] for j in range(8))/dg rr+=wr*0.4*sum(ptr[j]*V[s][j] for j in range(8))/dr return lg+rg,lr+rr G=[0,3,6,4] R=[0,3,5,4] H=[6,0,3,4] K=[0,5,3,4] print(ev(G,R),sum(ev(G,R))) print(ev(H,K),sum(ev(H,K))) EOF