Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2022
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.91 KB | None | 0 0
  1. def getMat(k):
  2.     vs = [(m, M) for m in range(k) for M in range(m,k)]
  3.     vToInd = {v:i for i,v in enumerate(vs)}
  4.     mat = matrix(QQ, len(vs))
  5.     for i1, (m,M) in enumerate(vs):
  6.         for x1 in range(m, k):
  7.             for x2 in range(m, k):
  8.                 if max(x1,x2)<M: continue
  9.                 v2 = (min(x1,x2), max(x1,x2))
  10.                 mat.add_to_entry(i1, vToInd[v2], 1)
  11.     return mat
  12.  
  13. def getGraph(k):
  14.     g = DiGraph()
  15.     g.allow_loops(True)
  16.     mat = getMat(k)
  17.     vs = [(m, M) for m in range(k) for M in range(m,k)]
  18.     for i1, v1 in enumerate(vs):
  19.         for i2, v2 in enumerate(vs):
  20.             if mat[i1,i2]>0:
  21.                 g.add_edge(v1,v2,mat[i1,i2])
  22.     return g
  23.  
  24.  
  25. def f(n, k):
  26.     mat = getMat(k)
  27.     return sum((mat^n)[0])
  28.  
  29.  
  30. g = getGraph(3)
  31. show(g.plot(figsize=6))
  32. show(getMat(3))
  33.  
  34. #a = matrix([[f(n,k) for n in range(1, 10)] for k in range(1, 10)])
  35. #show(a)
  36.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement