Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- """
- task: Fill a a gap complete with blind plates.
- picture: http://www.koester-systemtechnik.de/images/Pr2.png
- available plates: 5, 7, 12, 14, 24
- """
- from itertools import product
- def calc_plates(free, plates):
- """Returns the possible solutions of plates to fill the gap"""
- plen = len(plates)
- ranges = product(range(plen), repeat=plen)
- for row in ranges:
- ssum = sum(p * n for p, n in zip(plates, row))
- if ssum == free:
- yield row
- plates = [5, 7, 12, 14, 24]
- result = calc_plates(72, plates)
- for n, quantity in enumerate(result, start=1):
- print('#=== Result {:>2} ====='.format(n))
- for p, q in zip(plates, quantity):
- if not q:
- continue
- print('#{}x Blindplatte {}'.format(q, p))
- print()
- #=== Result 1 =====
- #3x Blindplatte 24
- #=== Result 2 =====
- #2x Blindplatte 12
- #2x Blindplatte 24
- #=== Result 3 =====
- #4x Blindplatte 12
- #1x Blindplatte 24
- #=== Result 4 =====
- #1x Blindplatte 5
- #1x Blindplatte 7
- #1x Blindplatte 12
- #2x Blindplatte 24
- #=== Result 5 =====
- #1x Blindplatte 5
- #1x Blindplatte 7
- #3x Blindplatte 12
- #1x Blindplatte 24
- #=== Result 6 =====
- #2x Blindplatte 5
- #1x Blindplatte 14
- #2x Blindplatte 24
- #=== Result 7 =====
- #2x Blindplatte 5
- #2x Blindplatte 12
- #1x Blindplatte 14
- #1x Blindplatte 24
- #=== Result 8 =====
- #2x Blindplatte 5
- #4x Blindplatte 12
- #1x Blindplatte 14
- #=== Result 9 =====
- #2x Blindplatte 5
- #2x Blindplatte 7
- #2x Blindplatte 24
- #=== Result 10 =====
- #2x Blindplatte 5
- #2x Blindplatte 7
- #2x Blindplatte 12
- #1x Blindplatte 24
- #=== Result 11 =====
- #2x Blindplatte 5
- #2x Blindplatte 7
- #4x Blindplatte 12
- #=== Result 12 =====
- #3x Blindplatte 5
- #1x Blindplatte 7
- #1x Blindplatte 12
- #1x Blindplatte 14
- #1x Blindplatte 24
- #=== Result 13 =====
- #3x Blindplatte 5
- #1x Blindplatte 7
- #3x Blindplatte 12
- #1x Blindplatte 14
- #=== Result 14 =====
- #3x Blindplatte 5
- #3x Blindplatte 7
- #1x Blindplatte 12
- #1x Blindplatte 24
- #=== Result 15 =====
- #3x Blindplatte 5
- #3x Blindplatte 7
- #3x Blindplatte 12
- #=== Result 16 =====
- #4x Blindplatte 5
- #2x Blindplatte 14
- #1x Blindplatte 24
- #=== Result 17 =====
- #4x Blindplatte 5
- #2x Blindplatte 12
- #2x Blindplatte 14
- #=== Result 18 =====
- #4x Blindplatte 5
- #2x Blindplatte 7
- #1x Blindplatte 14
- #1x Blindplatte 24
- #=== Result 19 =====
- #4x Blindplatte 5
- #2x Blindplatte 7
- #2x Blindplatte 12
- #1x Blindplatte 14
- #=== Result 20 =====
- #4x Blindplatte 5
- #4x Blindplatte 7
- #1x Blindplatte 24
- #=== Result 21 =====
- #4x Blindplatte 5
- #4x Blindplatte 7
- #2x Blindplatte 12
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement