diff options
| author | Walt Mankowski <waltman@pobox.com> | 2020-08-26 09:15:54 -0400 |
|---|---|---|
| committer | Walt Mankowski <waltman@pobox.com> | 2020-08-26 09:15:54 -0400 |
| commit | 196b6c270e7f0bbe188c40093451fca3dd52c57e (patch) | |
| tree | cf467d335a57f4abee4450768abbb1ec05e5ecf0 /challenge-075/walt-mankowski/python | |
| parent | 60c1d8be5c9fac63612791b5370fb50d93d4cb2c (diff) | |
| download | perlweeklychallenge-club-196b6c270e7f0bbe188c40093451fca3dd52c57e.tar.gz perlweeklychallenge-club-196b6c270e7f0bbe188c40093451fca3dd52c57e.tar.bz2 perlweeklychallenge-club-196b6c270e7f0bbe188c40093451fca3dd52c57e.zip | |
python solution for challenge 75 task 1
first draft
Diffstat (limited to 'challenge-075/walt-mankowski/python')
| -rw-r--r-- | challenge-075/walt-mankowski/python/ch-1.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/challenge-075/walt-mankowski/python/ch-1.py b/challenge-075/walt-mankowski/python/ch-1.py new file mode 100644 index 0000000000..b070bcb102 --- /dev/null +++ b/challenge-075/walt-mankowski/python/ch-1.py @@ -0,0 +1,36 @@ +from sys import argv +from copy import deepcopy +import numpy as np + +s = int(argv[1]) +c = np.array([int(x) for x in argv[2:]]) +solutions = [] + +cnt = np.array([0 for _ in range(len(c))]) +while (True): + val = np.dot(c, cnt) + if val >= s: + if val == s: + solutions.append(deepcopy(cnt)) + + # rotate "odometer" + cnt[-1] = 0 + j = -2 + cnt[j] += 1 + while j >= -len(cnt) and np.dot(c, cnt) > s: + cnt[j] = 0 + j -= 1 + if j >= -len(cnt): + cnt[j] += 1 + + if j < -len(cnt): + break + else: + cnt[-1] += 1 + +print("There are", len(solutions), "ways to make sum", s) +for sol in solutions: + tmp = [] + for i in range(len(c)): + tmp += [c[i] for _ in range (sol[i])] + print(tmp) |
