Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def GetBit(n, ind):
- return (n & (1 << ind)) >> ind;
- def f(n):
- if (n == 0):
- return 1;
- else:
- return 0;
- lst = [];
- for i in range(16):
- M = Matrix([[GetBit(i, 0), GetBit(i, 1)], [GetBit(i, 2), GetBit(i, 3)]]);
- flag = false;
- for j in range (8):
- if (M[M[GetBit(j, 0), GetBit(j, 1)], GetBit(j, 2)] != M[GetBit(j, 0), M[GetBit(j, 1), GetBit(j, 2)]]):
- flag = true;
- break;
- if (flag == true):
- continue;
- lst.append(M);
- isomorph = [];
- for i in range(len(lst)):
- isomorph.append(false);
- for i in range(len(lst)):
- for j in range(len(lst)):
- if (i != j and isomorph[i] == false and isomorph[j] == false):
- flag = false;
- for k in range(4):
- if (f(lst[i][GetBit(k, 0)][GetBit(k, 1)]) != lst[j][f(GetBit(k, 0))][f(GetBit(k, 1))]):
- flag = true;
- break;
- if (flag == false):
- isomorph[j] = true;
- for i in range(len(lst)):
- if (isomorph[i] == false):
- print lst[i];
- print "\n";
Add Comment
Please, Sign In to add comment