Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def getMat(k):
- vs = [(m, M) for m in range(k) for M in range(m,k)]
- vToInd = {v:i for i,v in enumerate(vs)}
- mat = matrix(QQ, len(vs))
- for i1, (m,M) in enumerate(vs):
- for x1 in range(m, k):
- for x2 in range(m, k):
- if max(x1,x2)<M: continue
- v2 = (min(x1,x2), max(x1,x2))
- mat.add_to_entry(i1, vToInd[v2], 1)
- return mat
- def getGraph(k):
- g = DiGraph()
- g.allow_loops(True)
- mat = getMat(k)
- vs = [(m, M) for m in range(k) for M in range(m,k)]
- for i1, v1 in enumerate(vs):
- for i2, v2 in enumerate(vs):
- if mat[i1,i2]>0:
- g.add_edge(v1,v2,mat[i1,i2])
- return g
- def f(n, k):
- mat = getMat(k)
- return sum((mat^n)[0])
- g = getGraph(3)
- show(g.plot(figsize=6))
- show(getMat(3))
- #a = matrix([[f(n,k) for n in range(1, 10)] for k in range(1, 10)])
- #show(a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement