Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def fn(x, y, vals):
- if x == y:
- return 1
- elif all(vals): return 0
- else:
- y1 = int(str(x + 1)[-1])
- y2 = int(str(x + 3)[-1])
- y3 = int(str(x + 7)[-1])
- v1 = vals.copy()
- v2 = vals.copy()
- v3 = vals.copy()
- v1[y1] = 1
- v2[y2] = 1
- v3[y3] = 1
- if vals[y1] and vals[y2] and vals[y3]:
- return 0
- elif not any([vals[y1], vals[y2], vals[y3]]):
- return fn(y1, y, v1) + fn(y2, y, v2) + fn(y3, y, v3)
- elif not any([vals[y1], vals[y2]]):
- return fn(y1, y, v1) + fn(y2, y, v2)
- elif not any([vals[y1], vals[y3]]):
- return fn(y1, y, v1) + fn(y3, y, v3)
- elif not any([vals[y2], vals[y3]]):
- return fn(y2, y, v2) + fn(y3, y, v3)
- elif not vals[y1]:
- return fn(y1, y, v1)
- elif not vals[y2]:
- return fn(y2, y, v2)
- elif not vals[y3]:
- return fn(y3, y, v3)
- print(fn(1+1, 1, [0,0,1,0,0,0,0,0,0,0]) + fn(1+3, 1, [0,0,0,0,1,0,0,0,0,0]) + fn(1+7, 1, [0,0,0,0,0,0,0,0,1,0]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement