Untitled

 avatar
unknown
python
22 days ago
640 B
5
Indexable
def getMat(n, d):
    mid = n//2
    mat = matrix(QQ, n+1)
    for i in range(n+1):
        for j in range(1, d+1):
            if i<=mid:
                if j<=i:
                    mat.add_to_entry(i,i-j,1/d)
                elif i+j<=n:
                    mat.add_to_entry(i,i+j,1/d)
            else:
                if i+j<=n:
                    mat.add_to_entry(i,i+j,1/d)
                elif j<=i:
                    mat.add_to_entry(i,i-j,1/d)
    return mat

def calcE(n):
    mat = getMat(n, n)    
    return sum((matrix.identity(n+1)-mat).solve_right(vector((1,)+(0,)*n)))
    
    
print (calcE(6))
Leave a Comment