diff options
| author | chirvasitua <chirvasitua@gmail.com> | 2021-07-12 14:18:00 -0400 |
|---|---|---|
| committer | chirvasitua <chirvasitua@gmail.com> | 2021-07-12 14:18:00 -0400 |
| commit | 5d82be102bc5151bd3560a42e93b1de66473d74e (patch) | |
| tree | b5fddb60b813498e99e2da1ad843299a792f25e3 | |
| parent | 1aa7b6eaba2a58fc1ef0612373e3aed6b61f345d (diff) | |
| download | perlweeklychallenge-club-5d82be102bc5151bd3560a42e93b1de66473d74e.tar.gz perlweeklychallenge-club-5d82be102bc5151bd3560a42e93b1de66473d74e.tar.bz2 perlweeklychallenge-club-5d82be102bc5151bd3560a42e93b1de66473d74e.zip | |
1st commit on 121_python
| -rwxr-xr-x | challenge-121/stuart-little/python/ch-1.py | 7 | ||||
| -rwxr-xr-x | challenge-121/stuart-little/python/ch-2.py | 27 |
2 files changed, 34 insertions, 0 deletions
diff --git a/challenge-121/stuart-little/python/ch-1.py b/challenge-121/stuart-little/python/ch-1.py new file mode 100755 index 0000000000..0e9f54f8ca --- /dev/null +++ b/challenge-121/stuart-little/python/ch-1.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +# run <script> <bit position> + +import sys + +print(int(sys.argv[1]) ^ 2**(int(sys.argv[2])-1)) diff --git a/challenge-121/stuart-little/python/ch-2.py b/challenge-121/stuart-little/python/ch-2.py new file mode 100755 index 0000000000..d4831d657d --- /dev/null +++ b/challenge-121/stuart-little/python/ch-2.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python + +# run <script> <nr of cities> + +from itertools import permutations +import random +import sys + +def mkRMat(n): + return [[0 if j==i else random.randint(1,9) for j in range(1,n+1)] for i in range(1,n+1)] + +def sayMat(m): + for i in m: print(i) + +def pathCost(path,mat): + return sum([mat[path[i]][path[(i+1)% len(path)]] for i in range(len(path))]) + +nr=int(sys.argv[1]) +mat = mkRMat(nr) + +print("Your matrix:") +sayMat(mat) + +sol = min([(perm,pathCost(perm,mat)) for perm in permutations(range(nr))], key=lambda p: p[1]) + +print(f"Optimal cost: {sol[1]}") +print(f"Optimal path: {list(sol[0]) + [sol[0][0]]}") |
