Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #http://stackoverflow.com/questions/10388060/solving-puzzle-in-python
- import itertools as it
- weight = 40
- full = range(1,41)
- comb = [x for x in it.combinations(full,4) if sum(x)==40]
- for perm in comb:
- list = []
- list.append(perm[0] + perm[1] + perm[2] + perm[3])
- list.append(perm[0] + perm[1] + perm[2] - perm[3])
- list.append(perm[0] + perm[1] - perm[2] + perm[3])
- list.append(perm[0] + perm[1] - perm[2] - perm[3])
- list.append(perm[0] - perm[1] + perm[2] + perm[3])
- list.append(perm[0] - perm[1] + perm[2] - perm[3])
- list.append(perm[0] - perm[1] - perm[2] + perm[3])
- list.append(perm[0] - perm[1] - perm[2] - perm[3])
- list.append(- perm[0] + perm[1] + perm[2] + perm[3])
- list.append(- perm[0] + perm[1] + perm[2] - perm[3])
- list.append(- perm[0] + perm[1] - perm[2] + perm[3])
- list.append(- perm[0] + perm[1] - perm[2] - perm[3])
- list.append(- perm[0] - perm[1] + perm[2] + perm[3])
- list.append(- perm[0] - perm[1] + perm[2] - perm[3])
- list.append(- perm[0] - perm[1] - perm[2] + perm[3])
- list.append(- perm[0] - perm[1] - perm[2] - perm[3])
- #take out 3s
- list.append(perm[0] + perm[1] + perm[2])
- list.append(perm[0] + perm[1] - perm[2])
- list.append(perm[0] - perm[1] + perm[2])
- list.append(perm[0] - perm[1] - perm[2])
- list.append(- perm[0] + perm[1] + perm[2])
- list.append(- perm[0] + perm[1] - perm[2])
- list.append(- perm[0] - perm[1] + perm[2])
- list.append(- perm[0] - perm[1] - perm[2])
- # take out 2s
- list.append(perm[0] + perm[1] + perm[3])
- list.append(perm[0] + perm[1] - perm[3])
- list.append(perm[0] - perm[1] + perm[3])
- list.append(perm[0] - perm[1] - perm[3])
- list.append(- perm[0] + perm[1] + perm[3])
- list.append(- perm[0] + perm[1] - perm[3])
- list.append(- perm[0] - perm[1] + perm[3])
- list.append(- perm[0] - perm[1] - perm[3])
- # take out 1s
- list.append(perm[0] + perm[2] + perm[3])
- list.append(perm[0] + perm[2] - perm[3])
- list.append(perm[0] - perm[2] + perm[3])
- list.append(perm[0] - perm[2] - perm[3])
- list.append(- perm[0] + perm[2] + perm[3])
- list.append(- perm[0] + perm[2] - perm[3])
- list.append(- perm[0] - perm[2] + perm[3])
- list.append(- perm[0] - perm[2] - perm[3])
- # take out 0s
- list.append(perm[1] + perm[2] + perm[3])
- list.append(perm[1] + perm[2] - perm[3])
- list.append(perm[1] - perm[2] + perm[3])
- list.append(perm[1] - perm[2] - perm[3])
- list.append(- perm[1] + perm[2] + perm[3])
- list.append(- perm[1] + perm[2] - perm[3])
- list.append(- perm[1] - perm[2] + perm[3])
- list.append(- perm[1] - perm[2] - perm[3])
- # take out 3, 2
- list.append(perm[0] + perm[1])
- list.append(perm[0] - perm[1])
- list.append(- perm[0] + perm[1])
- list.append(- perm[0] - perm[1])
- # take out 3, 1
- list.append(perm[0] + perm[2])
- list.append(perm[0] - perm[2])
- list.append(- perm[0] + perm[2])
- list.append(- perm[0] - perm[2])
- # take out 3, 0
- list.append(perm[1] + perm[2])
- list.append(perm[1] - perm[2])
- list.append(- perm[1] + perm[2])
- list.append(- perm[1] - perm[2])
- # take out 2, 1
- list.append(perm[0] + perm[3])
- list.append(perm[0] - perm[3])
- list.append(- perm[0] + perm[3])
- list.append(- perm[0] - perm[3])
- # take out 2, 0
- list.append(perm[1] + perm[3])
- list.append(perm[1] - perm[3])
- list.append(- perm[1] + perm[3])
- list.append(- perm[1] - perm[3])
- list.append(perm[1] + perm[3])
- list.append(perm[1] - perm[3])
- list.append(- perm[1] + perm[3])
- list.append(- perm[1] - perm[3])
- # take out 1, 0
- list.append(perm[2] + perm[3])
- list.append(perm[2] - perm[3])
- list.append(- perm[2] + perm[3])
- list.append(- perm[2] - perm[3])
- # only 0 or 1 or 2, or 3
- list.append(perm[0])
- list.append(perm[1])
- list.append(perm[2])
- list.append(perm[3])
- list_good = True
- for x in range(1, 41):
- if x not in list:
- list_good = False
- if list_good:
- print list, perm
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement