Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def prM(a):
- print('======')
- for r in a:
- print(r)
- print('--------')
- def getAdj(n,e):
- adj=[[[0] for i in range(n)] for i in range(n)]
- for k in e:
- z = k[0]
- s = k[1]
- adj[z][s]=[1]
- for i in range(n):
- adj[i][i][0]=1
- return adj
- def isrefl(a):
- pro=1
- for i in range(len(a)):
- pro*=a[i][i][0]
- return pro
- def issym(a):
- for i in range(len(a)):
- for j in range(len(a)):
- if not (a[i][j] == a[j][i] ):
- return 0
- return 1
- def istrans(a):
- x=len(a)
- for i in range(x):
- for j in range(x):
- if i ==j:
- continue
- for k in range(x):
- if k==i:
- continue
- if a[i][j][0]==1:
- if a[j][k][0]==1:
- if not a[i][k][0]==1:
- return 0
- return 1
- def iseqclass(n, e):
- a=getAdj(n, e)
- if isrefl(a) and issym(a) and istrans(a):
- return 1
- else:
- return 0
- def test():
- arg1=7
- 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)]
- prM(getAdj(arg1, arg2))
- print(iseqclass(arg1, arg2))
- arg1=4
- arg2=[(1, 2),(2, 1),(3, 1), (1, 3), (2, 3), (3, 2)]
- prM(getAdj(arg1, arg2))
- print(iseqclass(arg1, arg2))
- arg1=4
- arg2=[(1, 2),(3, 1), (1, 3), (2, 3), (3, 2)]
- prM(getAdj(arg1, arg2))
- print(iseqclass(arg1, arg2))
- arg1=3
- arg2=[(1, 2),(2, 1)]
- prM(getAdj(arg1, arg2))
- print(iseqclass(arg1, arg2))
- test()
Advertisement
Add Comment
Please, Sign In to add comment