from matplotlib import pyplot as plt
from math import *
import numpy as np
B=10**36

def pctM(pL):
    return(100/(1+B*10**(-6*pL)))

def pctML6(pL):
    return((100*B*10**(-6*pL))/(1+B*10**(-6*pL)))

X=np.linspace(4,8,1000)
M=[pctM(e) for e in X]
ML=[pctML6(e) for e in X]

#plt.plot(X,M)
#plt.plot(X,ML)
#plt.show()

logK=[1.99,1.51,0.93,0.64,0.06]
logBeta=[]
for i in range (len(logK)):
    a=0
    for j in range(i+1):
        a=a+logK[j]

    logBeta.append(a)


def pctMLn(n,pL):
    b=1
    c=0
    for i in range(1,n+1):
        for j in range(i+1,n+1):
            if j>n:
                b=1
            else:
                b=b/((10**(logK[j-1]))*(10**(-pL)))

        c=c+b
        b=1
    d=1
    f=0
    for i in range(n+1,6):
        if n>5:
            f=f+0
        else:
            for j in range(n+1,i+1):
                if j>i:
                    d=1
                else:
                    d=d*(10**(-pL))*(10**(logK[j-1]))
        f=f+d

    x=(100*(10**(logBeta[n-1]))*(10**(-n*pL)))/(1+(10**(logBeta[n-1]))*(10**(-n*pL))*(c+f))
    return(x)

pL=[i/100 for i in range(0,250)]
#ML0=ML1=[pctMLn(0,e) for e in pL]
ML1=[pctMLn(1,e) for e in pL]
ML2=[pctMLn(2,e) for e in pL]
ML3=[pctMLn(3,e) for e in pL]
ML4=[pctMLn(4,e) for e in pL]
ML5=[pctMLn(5,e) for e in pL]
#plt.plot(pL,ML0)
plt.plot(pL,ML1)
plt.plot(pL,ML2)
plt.plot(pL,ML3)
plt.plot(pL,ML4)
plt.plot(pL,ML5)
plt.show()














