Guest User

Untitled

a guest
Apr 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.11 KB | None | 0 0
  1. def GetBit(n, ind):
  2.     return (n & (1 << ind)) >> ind;
  3. def f(n):
  4.     if (n == 0):
  5.         return 1;
  6.     else:
  7.         return 0;
  8.  
  9. lst = [];
  10. for i in range(16):
  11.     M = Matrix([[GetBit(i, 0), GetBit(i, 1)], [GetBit(i, 2), GetBit(i, 3)]]);
  12.     flag = false;
  13.     for j in range (8):
  14.         if (M[M[GetBit(j, 0), GetBit(j, 1)], GetBit(j, 2)] != M[GetBit(j, 0), M[GetBit(j, 1), GetBit(j, 2)]]):
  15.             flag = true;
  16.             break;
  17.     if (flag == true):
  18.         continue;
  19.     lst.append(M);    
  20.  
  21. isomorph = [];
  22. for i in range(len(lst)):
  23.     isomorph.append(false);
  24. for i in range(len(lst)):
  25.     for j in range(len(lst)):
  26.         if (i != j and isomorph[i] == false and isomorph[j] == false):
  27.             flag = false;
  28.             for k in range(4):
  29.                 if (f(lst[i][GetBit(k, 0)][GetBit(k, 1)]) != lst[j][f(GetBit(k, 0))][f(GetBit(k, 1))]):
  30.                     flag = true;
  31.                     break;
  32.             if (flag == false):
  33.                 isomorph[j] = true;
  34.                
  35. for i in range(len(lst)):
  36.     if (isomorph[i] == false):
  37.         print lst[i];
  38.         print "\n";
Add Comment
Please, Sign In to add comment