Guest User

Untitled

a guest
Nov 22nd, 2018
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.63 KB | None | 0 0
  1. def prM(a):
  2.     print('======')
  3.     for r in a:
  4.         print(r)
  5.     print('--------')
  6.  
  7. def getAdj(n,e):
  8.     adj=[[[0] for i in range(n)] for i in range(n)]
  9.     for k in e:
  10.         z = k[0]
  11.         s = k[1]
  12.         adj[z][s]=[1]
  13.     for i in range(n):
  14.         adj[i][i][0]=1
  15.     return adj
  16.  
  17. def isrefl(a):
  18.     pro=1
  19.     for i in range(len(a)):
  20.         pro*=a[i][i][0]
  21.     return pro
  22. def issym(a):
  23.     for i in range(len(a)):
  24.         for j in range(len(a)):
  25.             if not (a[i][j] == a[j][i] ):
  26.                 return 0
  27.     return 1
  28.    
  29. def istrans(a):
  30.     x=len(a)
  31.     for i in range(x):
  32.         for j in range(x):
  33.             if i ==j:
  34.                 continue
  35.             for k in range(x):
  36.                 if k==i:
  37.                     continue
  38.                 if a[i][j][0]==1:
  39.                     if a[j][k][0]==1:
  40.                         if not a[i][k][0]==1:
  41.                             return 0
  42.     return 1
  43.  
  44. def iseqclass(n, e):
  45.     a=getAdj(n, e)
  46.     if isrefl(a) and issym(a) and istrans(a):
  47.         return 1
  48.     else:
  49.         return 0
  50. def test():
  51.     arg1=7
  52.     arg2=[(1, 2),(2, 1),(3, 1), (1, 3), (2, 3), (3, 2), (4, 5), (5, 4), (5, 6), (6, 5), (4, 6), (6, 4)]
  53.     prM(getAdj(arg1, arg2))
  54.     print(iseqclass(arg1, arg2))
  55.     arg1=4
  56.     arg2=[(1, 2),(2, 1),(3, 1), (1, 3), (2, 3), (3, 2)]
  57.     prM(getAdj(arg1, arg2))
  58.     print(iseqclass(arg1, arg2))
  59.     arg1=4
  60.     arg2=[(1, 2),(3, 1), (1, 3), (2, 3), (3, 2)]
  61.     prM(getAdj(arg1, arg2))
  62.     print(iseqclass(arg1, arg2))
  63.     arg1=3
  64.     arg2=[(1, 2),(2, 1)]
  65.     prM(getAdj(arg1, arg2))
  66.     print(iseqclass(arg1, arg2))
  67.  
  68.  
  69.  
  70. test()
Advertisement
Add Comment
Please, Sign In to add comment