diff --git a/p10/p10.org b/p10/p10.org index 53451cd..bdce139 100644 --- a/p10/p10.org +++ b/p10/p10.org @@ -147,170 +147,50 @@ These are some auxiliary functions to create and deal with matrices #+RESULTS: : row-reduce -#+begin_src emacs-lisp :results none - (defun fix-machine (machine) - (let ((machine-1 (let ((permutation (-grade-up '> (car machine)))) - (cons (-sort '> (car machine)) (--map (--map (nth it permutation) it) (cdr machine)))))) - (cons (car machine-1) - (--sort (< (-max it) (-max other)) - (--sort (> (length it) (length other)) (cdr machine-1)))))) +#+begin_src emacs-lisp + (defun set-distance (a b) + (length (-difference b a))) + + (defun -min-or-0 (list) + (if (not list) 0 + (-min list))) + (defun value (list &optional base) + (let ((n (* 1.0 (length list)))) + (--map (+ (set-distance base it) (/ (-min-or-0 (--remove (= 0 it) (-map (lambda (new) (set-distance (-union base it) new)) list))) n)) list))) - (setq machines (-map #'fix-machine machines)) + (defun sort-re-value (list &optional base) + (-map 'cdr (--sort (< (car it) (car other)) (-zip-pair (value list base) list)))) + + (defun sort-recursively (list &optional base) + (when list + (let* ((step (sort-re-value list base)) + (top (car step)) + (bottom (cdr step))) + (cons top + (sort-recursively bottom (-union top base)))))) + + (defun fix-machine (machine) + (let* ((machine-1 (cons (car machine) (sort-recursively (cdr machine)))) + (sorted (-reduce '-union (cdr machine-1))) + (permutation (-grade-up '< sorted))) + (cons (--map-indexed (nth (nth it-index permutation) (car machine-1)) (car machine-1)) + (--map (--map (nth it permutation) it) (cdr machine-1))) + )) + + ;(setq machines (-map #'fix-machine machines)) + ( (matrix-buttons (fix-machine (car machines)))) #+end_src #+RESULTS: -| (29 26 26 12 9 26 26) | (0 1 3 5) | (1 2 4 5 6) | (0 1 2 5 6) | (0 2 3 4 6) | (0 3 4 6) | | | | | | | | | -| (31 51 38 61 77 74 49 72) | (1 3 4) | (0 1 2 3 4 5) | (1 3 4 5 6) | (3 4 6) | (0 4 5 7) | (2 3 4 7) | (1 5 7) | (2 6 7) | (0 5 7) | (5 6 7) | | | | -| (59 21 65 80 39 32 29 43) | (1 2 3) | (0 2 4 5 6) | (0 3 6) | (2 5 6) | (0 2 3 4 5 7) | (0 1 3 5 7) | (0 2 3 4 7) | (1 3 5 7) | | | | | | -| (45 34 45 25 51 61 41) | (0 1 2 3 4) | (1 4) | (0 2 3 5) | (0 1 2 4 5 6) | (0 2 3 5 6) | (4 5 6) | | | | | | | | -| (84 50 59 44 21 77 61 83) | (0 1 3 4 5 6) | (0 3 4 5 6) | (0 1 3 5 6) | (0 1 2 4 6 7) | (0 1 5 6 7) | (0 2 4 5 7) | (0 2 3 5 7) | (0 1 2 6 7) | (2 6 7) | (5 7) | | | | -| (35 18 29 30 49 28 30 35 48) | (1 2 3 4 6 7) | (0 1 2 4 5 7) | (0 2 7) | (0 3 4 5 6 7 8) | (0 1 3 4 6 8) | (0 2 3 4 6 8) | (2 4 5 7 8) | | | | | | | -| (45 8 50 30 16 45) | (1 2) | (0 2 3) | (0 2 3 4 5) | (1 2 4 5) | (0 5) | (2 5) | (5) | | | | | | | -| (26 33 44 35 25 48 30 33 11 45) | (2 5) | (1 3 6) | (1 7) | (2 3 4 6 7 8) | (0 1 2 4 5 6 7 9) | (2 3 4 5 8 9) | (1 3 5 7 9) | (0 5 9) | (3 9) | | | | | -| (49 37 54 32 31 23) | (0 1 2) | (0 1 2 3) | (2 3 4) | (0 2 3 4 5) | (0 1 3 4 5) | (0 2 4 5) | (0 1 5) | (4 5) | | | | | | -| (46 18 33 22) | (0) | (0 1) | (0 1 2) | (0 2 3) | (2 3) | | | | | | | | | -| (23 50 24 46 47 43) | (0 1) | (0 2 3) | (0 1 3 4) | (1 3 4) | (2 3 4) | (0 1 2 3 5) | (1 4 5) | (5) | | | | | | -| (22 15 45 45 48 49) | (0) | (2 4) | (0 2 3 4 5) | (1 3 4 5) | (0 1 2 5) | (0 2 3 5) | (2 3 4 5) | (1 2 5) | | | | | | -| (42 51 56 67 54 34 32 69 49) | (0 3 4 5 6 7) | (1 3 4 7) | (2 6 7) | (5 7) | (0 1 2 3 4 5 8) | (0 1 2 3 5 6 8) | (1 3 4 7 8) | (0 2 3 7 8) | (1 2 4 8) | | | | | -| (74 36 61 78 36 34 19 46 17 29) | (2 3) | (1 3 4) | (0 1 2 3 4 5 6 7) | (0 2 3 7) | (0 1 2 3 4 6 7 8) | (0 1 3 4 5 7 8) | (1 3 4 5 7 8) | (0 2 3 5 8 9) | (2 3 9) | (0 9) | | | | -| (30 19 38 38 32) | (0 2 3) | (2 3) | (0 2 3 4) | (1 4) | | | | | | | | | | -| (42 58 43 59 47 32 29 70 66 53) | (0 3 4 7) | (4 7) | (1 6 7 8) | (0 8) | (1 8) | (0 1 2 3 6 7 8 9) | (1 2 3 4 5 7 8 9) | (0 3 4 5 7 8 9) | (0 1 2 3 4 6 9) | (1 2 5 6 7 9) | | | | -| (9 194 203 18 194) | (0 2 3) | (1 2 3 4) | (1 2 4) | | | | | | | | | | | -| (1 16 1 16) | (0 2) | (1 3) | | | | | | | | | | | | -| (19 23 23 62 25 60 23) | (0) | (2) | (3 4) | (0 1 3 4 5) | (3 5) | (1 2 3 4 5 6) | (0 3 4 5 6) | (2 3 5 6) | (1 2 5 6) | | | | | -| (38 71 40 20 34 45 46 22 57) | (4) | (0 1 2 6 7) | (0 1 2 4 5 6 8) | (1 2 3 5 6 7 8) | (0 1 4 5 6 8) | (1 2 3 8) | (1 5 8) | | | | | | | -| (21 34 25 11 38) | (1) | (2) | (0 2 3) | (1 2 3) | (0 1 4) | (1 4) | (4) | | | | | | | -| (18 24 25 33 23 31) | (0 1 3) | (1 3) | (0 4) | (0 2 3 4 5) | (1 3 4 5) | (1 5) | (2 5) | | | | | | | -| (210 12 211 19 219) | (0) | (1 2) | (0 2 3 4) | (1 3 4) | (0 2 4) | (2 4) | | | | | | | | -| (44 25 62 37 54 51 26 74 57) | (0 2 5) | (0 3 4 5 6 7) | (0 3 7) | (1 2 4 5 6 7 8) | (0 2 3 4 5 7 8) | (0 1 4 5 6 8) | (1 3 5 6 7 8) | (2 4 7 8) | | | | | | -| (66 66 214 278 231 77 256 48 78 46) | (2 3 4 6) | (0 1 3 5 6 7) | (0 2 7) | (1 3 4 5 7 8) | (0 2 3 4 6 8) | (0 1 3 4 8) | (3 6 8) | (0 8) | (0 2 3 5 6 8 9) | (0 3 5 6 7 8 9) | (1 3 4 5 6 9) | (1 2 5 9) | (3 6 9) | -| (19 13 16 50 42) | (1 2 3) | (0 3) | (2 3 4) | (3 4) | (1 4) | | | | | | | | | -| (71 22 39 41 31 39 55) | (0 2) | (0 1 2 3 4) | (2 4) | (0 1 2 3 4 5) | (0 3 4 5 6) | (0 1 2 3 6) | (0 3 5 6) | (0 4 5 6) | | | | | | -| (147 46 37 53 31 26 46 109 31) | (1 2 3 5 6) | (0 3 6) | (0 7) | (0 1 2 3 4 6 8) | (0 1 3 4 5 6 8) | (0 1 2 3 4 5 8) | (1 4 8) | | | | | | | -| (11 11 10 6) | (0 2) | (1 2) | (0 1 3) | | | | | | | | | | | -| (49 39 214 216 34 83 235 89 223 64) | (2 3 5 6 7) | (3 5 7 8) | (2 3 6 8) | (0 2 3 4 5 6 7 8 9) | (1 2 3 5 6 7 8 9) | (0 1 2 4 5 6 7 9) | (0 1 5 6 7 8 9) | (6 7 9) | | | | | | -| (45 28 7 23 28 27 13 14 21) | (0 1 3 4 5) | (0 5 6) | (2 6) | (0 1 6 7) | (0 1 2 3 6 7 8) | (0 4 5 7 8) | (0 8) | (4 8) | | | | | | -| (54 28 43 21 41 57 26) | (0 2) | (0 1 3 5) | (1 2 4 5) | (0 3 5) | (2 5) | (0 2 4 5 6) | (0 1 4 6) | | | | | | | -| (38 18 3 17 18) | (0 2) | (0 3) | (0 1 4) | (1 2 4) | | | | | | | | | | -| (163 183 34 36) | (0 1) | (1 2 3) | (0 1 3) | (1 3) | (2 3) | | | | | | | | | -| (57 40 57 53 234 58 29 49 76 44) | (0 1 2) | (4) | (3 5) | (0 5 6) | (0 1 2 4 5 7 8) | (1 2 3 5 6 8) | (2 3 4 7 8) | (3 4 6 8) | (0 3 4 5 7 8 9) | (0 6 8 9) | (5 7 8 9) | (9) | | -| (38 25 29 19 26 40 9 31) | (0) | (2 3 5) | (3 4 5) | (0 1 2 3 4 6) | (0 5 6) | (1 6) | (0 1 2 4 5 7) | (2 4 6 7) | (3 5 7) | | | | | -| (9 1 27 8 1) | (2) | (0 2 3) | (0 1 4) | | | | | | | | | | | -| (48 17 224 48 26 16) | (0 1 2) | (2) | (0 3) | (3) | (0 1 2 4) | (0 2 3 4) | (0 2 3 4 5) | (1 3 5) | | | | | | -| (214 20 197 17) | (0 1 2) | (0 2) | (0 1 3) | | | | | | | | | | | -| (25 50 13 26 27) | (1 2) | (1 3) | (0 1 3 4) | (1 2 4) | (0 1 4) | | | | | | | | | -| (32 37 40 36 26 33 39 33 23) | (2 5) | (0 1 2 3 4 6 7) | (0 1 2 3 5 6 7) | (3 5 7) | (1 3 4 6 7 8) | (0 4 5 6 7 8) | (0 3 5 6 8) | (1 8) | | | | | | -| (21 23 1 24 8 28 35) | (3) | (0 1 2 3 4 5) | (1 4 5) | (0 3 5 6) | (1 6) | | | | | | | | | -| (92 58 43 92 54 73 46) | (0 1 2) | (0 1 2 3 4) | (0 1 3 4 5) | (0 2 3 5) | (0 3 5) | (2 3 4 5 6) | (1 3 4 5 6) | (0 3 4 6) | (0 3 5 6) | | | | | -| (27 14 36 69 36 40) | (0 1 3) | (2 3 4) | (4) | (0 2 3 5) | (1 3 5) | (3 5) | | | | | | | | -| (19 15 69 27) | (1 2) | (0 2) | (2) | (0 2 3) | (2 3) | | | | | | | | | -| (57 154 139 128 143 13) | (0 1 2) | (1 3) | (0 1 2 3 4) | (1 2 3 4) | (0 4) | (0 3 4 5) | (1 5) | | | | | | | -| (58 47 61 54 71 45 39 45) | (3 4) | (1 4 5) | (4 5) | (0 1 2 3 6) | (4 6) | (1 2 4 5 6 7) | (0 1 5 6 7) | (0 2 4 5 7) | (0 1 2 3 7) | | | | | -| (87 24 5 78 65 95 69 62 69 62) | (0 3) | (5 6) | (6) | (3 4 5 7) | (3 4 7) | (1 3 4 5 8) | (0 8) | (5 8) | (0 3 5 6 7 9) | (0 4 6 7 8 9) | (1 5 6 7 9) | (2 3 4 5 9) | (0 5 9) | -| (19 45 13 142 172 161 156) | (1 2 4) | (1 4 5) | (0 3 4 5 6) | (0 2 3 5 6) | (3 4 5 6) | (1 6) | | | | | | | | -| (9 4 17 133) | (1 2) | (0 2) | (2 3) | (3) | | | | | | | | | | -| (15 7 27 12 25 25) | (0 2 3) | (1 2 3) | (2 3 4 5) | (0 2 4 5) | (1 3 4 5) | (2 4 5) | | | | | | | | -| (39 45 71 73 97 91 65 68 71) | (0 4) | (3 5 6) | (1 2 3 4 5 6 7) | (7) | (0 1 2 3 4 5 6 8) | (2 3 4 5 6 7 8) | (0 1 2 4 5 8) | (0 1 2 3 4 8) | (0 2 4 7 8) | (4 5 7 8) | (8) | | | -| (6 35 41 16 13 35) | (1 2 4) | (0 2 3 5) | (1 2 4 5) | (1 2 3 5) | (1 2 5) | | | | | | | | | -| (50 59 51 46 50 33 28 49 71 68) | (6 7) | (0 2 3 4 5 6 8) | (1 4 8) | (0 2 3 4 5 7 8 9) | (1 2 4 6 7 8 9) | (1 3 4 5 6 7 9) | (0 1 2 5 8 9) | (0 1 3 7 8 9) | (2 3 4 5 9) | (0 1 2 8 9) | (7 9) | | | -| (46 19 31 32 25 32) | (0) | (1 3) | (0 1 2 3 4) | (1 2 3 4) | (3 4) | (3 4 5) | (0 2 5) | | | | | | | -| (12 24 7 17 36) | (1 3 4) | (2 3 4) | (1 2 4) | (0 4) | | | | | | | | | | -| (17 12 35 29 23 29) | (0 2 4) | (0 2 3 4 5) | (2 3 4 5) | (1 2 3 5) | | | | | | | | | | -| (42 210 196 207 47 232 92 48 233 227) | (4 6) | (0 6) | (0 1 2 4 5 6 8) | (0 3 4 5 6 8) | (1 3 6 7 8) | (0 1 2 4 5 6 8 9) | (0 2 4 5 7 8 9) | (1 2 3 5 8 9) | (1 3 5 7 8 9) | (1 3 5 6 9) | (2 5 6 8 9) | | | -| (177 139 153 37 38 62 49 56) | (0 1 2) | (1 2 3 4 5) | (1 2 3 4 5 6) | (0 1 2 4 5 6) | (0 2 5 6) | (2 4 6) | (0 1 2 3 4 5 7) | (0 3 6 7) | (0 5 7) | (7) | | | | -| (189 197 199 38 46 190 25) | (2) | (0 2 3 4) | (1 3 4) | (0 1 2 3 4 5) | (0 1 2 5) | (2 5) | (0 1 4 6) | (0 3 4 6) | (3 5 6) | | | | | -| (71 55 64 38 41 63 44) | (2) | (1 3 4) | (0 1 3 4 5) | (0 1 2 5) | (0 5) | (0 1 2 4 5 6) | (0 1 2 4 6) | (0 3 4 6) | (2 3 6) | | | | | -| (220 33 198 38 18 55 42) | (0 2) | (1 3 5) | (3 5) | (0 2 3 4 5 6) | (0 1 3 5 6) | (1 2 4 6) | (0 1 5 6) | (3 6) | | | | | | -| (71 27 201 51 60 53 41 39 56) | (2) | (3 4) | (0 1 3 4 5 6 7) | (0 1 3 5 6 7) | (0 2 3 4 7 8) | (0 4 5 6 8) | (1 4 6 8) | (0 2 5 8) | | | | | | -| (33 37 33 38 40 33 51 38 33) | (1 3) | (4) | (0 1 2 3 4 6) | (3 6) | (6 7) | (0 2 4 5 6 7 8) | (1 2 4 5 6 7 8) | (0 1 2 3 5 7 8) | (5 6 7 8) | | | | | -| (19 0 5 15 16 11) | (0 1 3) | (0 3 4) | (1 2 4) | (3 4) | (0 2 3 5) | (0 4 5) | | | | | | | | -| (35 0 13 59 30) | (2) | (0 3) | (3) | (0 3 4) | (2 3 4) | (1 2 4) | (4) | | | | | | | -| (20 15 5 20) | (0 1 3) | (0 2 3) | | | | | | | | | | | | -| (22 11 11 31) | (0 1 2) | (0 1 3) | (0 3) | (2 3) | | | | | | | | | | -| (11 1 11 1) | (0 2) | (1 3) | | | | | | | | | | | | -| (45 45 32 29 45 43 28 49 38 32) | (5 6) | (0 3 4 5 7) | (0 1 2 4 5 6 7 8) | (0 1 4 5 6 7 8) | (1 2 5 7 8) | (0 3 4 6 9) | (1 2 8 9) | (1 7 9) | | | | | | -| (8 9 6 23) | (2 3) | (1 3) | (0 3) | | | | | | | | | | | -| (242 110 78 295 305 83 116 282 116 76) | (0 3 4 7) | (1 4 6 7) | (0 6 7) | (1 2 3 4 5 6 7 8) | (0 1 2 3 5 6 7 8) | (1 2 3 4 5 6 8) | (0 1 3 4 6 7 8 9) | (0 2 3 4 6 7 8 9) | (1 3 4 5 6 7 8 9) | (0 1 2 3 4 5 7 9) | (1 2 3 4 6 8 9) | (1 4 5 7 8 9) | (0 4 5 8 9) | -| (5 5 0 23 23 5) | (0 2 4) | (3 4) | (0 1 3 4 5) | (1 2 5) | | | | | | | | | | -| (9 13 22 13) | (0 2) | (1 2 3) | | | | | | | | | | | | -| (51 29 19 41 52 29 38 34) | (0 2 3 4) | (4 5) | (1 3 4 5 6) | (3 6) | (0 1 2 5 6 7) | (0 1 5 6 7) | (0 4 7) | | | | | | | -| (181 23 187 183) | (1) | (0 1 2) | (1 2) | (0 2 3) | (1 3) | (0 3) | | | | | | | | -| (16 16 22 16 33) | (0 2 3) | (0 1 3) | (1 2 3) | (0 3) | (0 3 4) | (1 2 4) | (4) | | | | | | | -| (41 32 18 32 27 24 21) | (1 2 3) | (0 4) | (0 1 3 5) | (1 2 3 6) | (0 4 6) | (5 6) | | | | | | | | -| (42 195 42 45 188 221) | (0 1 2 3 5) | (0 2 3 4 5) | (2 3 4 5) | (0 1 5) | (1 4 5) | (0 3 5) | | | | | | | | -| (28 187 185 45 187 30 171 35) | (1) | (0 1 2) | (2 4) | (2 3 5) | (1 2 4 6) | (0 1 2 4 5 6 7) | (1 2 3 4 5 6 7) | (0 1 3 4 6 7) | (4 5 7) | | | | | -| (51 64 57 59 81 67 39 70 53 50) | (1 4) | (0 5 6 7) | (1 2 3 4 5 6 7 8) | (1 2 3 5 6 7 8) | (0 4 5 6 7 8) | (0 1 3 4 5 6 7 8 9) | (0 2 3 4 5 7 8 9) | (0 1 2 3 4 7 9) | (0 2 3 5 9) | (2 4 5 9) | (1 5 9) | | | -| (151 20 21 130 150) | (0 2) | (0 1 2 4) | (0 3 4) | | | | | | | | | | | -| (69 66 62 54 68 71 37 25 38) | (0 1 2 3) | (1 4) | (4) | (0 1 2 3 4 5) | (0 3 4 5) | (4 6) | (0 1 2 3 5 6 7 8) | (0 2 5 6 7 8) | (1 5 6 7 8) | (1 2 5 8) | | | | -| (36 33 40 13 50 20) | (0 3) | (0 1 2 4) | (2 4) | (1 4 5) | (0 2 5) | | | | | | | | | -| (18 210 210 14 10) | (1 2) | (0 1 2 3) | (1 2 3) | (0 4) | | | | | | | | | | -| (24 15 9 0) | (0 1) | (0 2) | (0 3) | | | | | | | | | | | -| (50 31 27 160 140 49 129 7 39 144) | (0 1 3 4 5 6) | (0 7) | (0 3 5 6 8) | (0 1 2 3 4 5 8 9) | (1 2 4 6 7 8 9) | (1 3 4 5 8 9) | (0 2 3 5 8 9) | (0 1 3 4 8 9) | (3 4 6 9) | | | | | -| (52 60 212 241 50 32 21 221 51 92) | (0 1 2 4 6 7) | (2 3 7) | (4 6 7 8) | (0 1 3 4 5 7 8 9) | (0 1 3 5 6 7 8 9) | (2 3 4 5 6 7 9) | (0 1 2 3 4 5 9) | (0 1 4 6 7 8 9) | (0 2 3 7 9) | (2 3 7 8 9) | (3 4 8 9) | (1 9) | | -| (2 26 26 17 19 24) | (1 3) | (0 1 2 4) | (1 2 3 4 5) | (1 2 5) | | | | | | | | | | -| (53 34 19 122 32 140 151 51 44) | (3 5 6) | (0 1 2 3 5 7) | (0 6 7) | (0 1 3 5 6 7 8) | (0 1 2 4 6 7 8) | (0 1 4 5 7 8) | (1 2 4 7 8) | (0 1 7 8) | (2 3 5 8) | (4 5 6 8) | (0 2 3 8) | | | -| (24 36 8 16 20) | (0 2) | (0 1 3) | (1 3) | (0 1 4) | (1 4) | | | | | | | | | -| (27 40 47 51 31 38) | (1 2 3) | (3 4) | (0 2 3 4 5) | (0 1 2 5) | (1 5) | | | | | | | | | -| (64 57 76 53 61 66 28 43 34 43) | (0 1 2 4 5 7) | (2 6 7) | (0 7) | (0 1 3 4 5 8) | (0 1 2 3 4 6 7 9) | (0 1 2 3 4 5 8 9) | (0 1 2 3 4 7 8 9) | (1 2 3 5 6 8 9) | (0 2 3 4 5 9) | | | | | -| (39 57 68 14 50 54 35 70) | (1 2 5) | (2 4 6) | (0 1 2 4 5 6 7) | (0 1 2 5 6 7) | (0 1 4 5 6 7) | (0 1 3 4 7) | (2 4 7) | (5 7) | | | | | | -| (19 21 20 27 32) | (0 1 3) | (1 2 3 4) | (2 3 4) | (0 4) | | | | | | | | | | -| (32 10 12 12 40 32 50 12) | (0 1 2 4 5) | (4 5 6) | (0 6) | (4 6) | (0 1 3 4 5 6 7) | (0 2 3 4 5 6 7) | | | | | | | | -| (225 75 226 54 241 203 20 182 39 208) | (0 1 4) | (1 2 3 4 5) | (0 1 3 8) | (0 1 2 4 6 7 8 9) | (2 3 4 5 6 8 9) | (1 2 3 4 6 8 9) | (0 2 4 5 7 9) | (0 1 2 4 9) | | | | | | -| (37 32 46 56 23 40 37 56) | (1 5) | (0 1 4 6) | (1 2 3 4 5 7) | (0 2 3 5 6 7) | (0 1 2 4 5 7) | (0 2 3 6 7) | (1 3 4 7) | | | | | | | -| (131 150 133 9 151) | (1 2 3) | (0 1 2 4) | (0 3 4) | (1 4) | (3 4) | | | | | | | | | -| (79 59 72 88 29 73 77 23 38) | (0 1 3 4) | (2 5) | (0 1 2 4 5 6) | (0 1 2 3 6) | (0 3 5 6) | (5 6) | (1 2 3 4 5 6 8) | (0 2 3 6 7 8) | (1 2 3 4 5 8) | (1 3 4 7 8) | (1 3 5 8) | | | -| (63 43 43 55 65 19 58 55) | (0 1 2 3 4) | (0 2 3 4 5 6) | (0 1 3 4 6) | (0 2 3 4 6 7) | (0 1 2 3 6 7) | (0 1 2 4 6 7) | (0 2 6 7) | (3 4 5 7) | | | | | | -| (195 190 16 21 13 7 201) | (1 2) | (0 3 5) | (0 3 6) | (0 1 6) | (4 6) | | | | | | | | | -| (30 11 29 17) | (0) | (0 2) | (1 2) | (3) | | | | | | | | | | -| (70 36 63 23 42 69 62 71 89) | (0 1 4) | (1 2 6 7) | (0 2 4 5 6 7 8) | (0 3 5 6 7 8) | (0 1 4 5 7 8) | (2 3 5 7 8) | (4 5 6 8) | (0 2 5 8) | (0 2 6 8) | (3 8) | (0 8) | | | -| (53 57 81 50 47 94 41 81) | (0 1 2 5) | (0 1 5) | (2 5) | (0 6) | (0 1 2 3 6 7) | (0 3 4 5 6 7) | (4 5 6 7) | (1 2 4 7) | (2 3 5 7) | (1 3 7) | | | | -| (33 35 28 31 54 29 7) | (0 2 4) | (0 1 4) | (3 4) | (1 2 3 4 5) | (0 2 3 4 5) | (0 1 2 4 5) | (0 3 4 5 6) | | | | | | | -| (72 32 62 50 29 71 30 45 60 75) | (0 2 3) | (0 1 2 5 7 8) | (0 1 3 7 8) | (6 8) | (0 1 2 3 4 5 7 9) | (0 1 3 4 6 7 8 9) | (0 1 2 3 5 7 9) | (2 4 5 6 8 9) | (1 2 3 5 8 9) | (2 4 6 8 9) | (0 3 5 8 9) | (0 5 7 9) | (2 8 9) | -| (256 29 36 227 204 38 231) | (0 1 2) | (0 2) | (0 1 3 4 5) | (0 1 3 5 6) | (0 3 4 6) | (0 3 5 6) | (0 5 6) | (2 6) | | | | | | -| (9 14 20 13) | (1) | (2) | (0 2 3) | (1 2 3) | (0 3) | (3) | | | | | | | | -| (38 64 31 27 44 41 68) | (1 4) | (0 1 2 4 5 6) | (0 1 2 3 6) | (0 4 5 6) | (1 4 5 6) | (1 3 6) | | | | | | | | -| (24 18 18 6) | (0) | (0 1 2) | (1 3) | (3) | | | | | | | | | | -| (52 36 15 52 56) | (0 1 2) | (0 2 3) | (0 1 3 4) | (0 3 4) | (1 3 4) | (0 4) | | | | | | | | -| (76 49 67 39 55 23 72 56 52) | (0) | (0 4) | (0 5) | (0 1 3 4 6 7) | (1 2 7) | (0 1 7) | (0 2 3 4 6 8) | (0 2 5 6 7 8) | (1 2 4 6 7 8) | (1 2 6 8) | | | | -| (58 35 48 49 51 71 49 49) | (0 1 3 4) | (0 1 2 3 5 6) | (0 4 5 6) | (2 3 6) | (1 2 3 4 7) | (0 2 3 5 7) | (0 4 5 7) | (5 7) | | | | | | -| (18 9 24 27 23 7) | (1 3) | (0 2 3 4) | (1 2 3 4 5) | (0 2 3 5) | | | | | | | | | | -| (21 55 74 70 51 64 49 26 53) | (0 2 3 5) | (0 1 3 6) | (2 4 6) | (1 2 3 4 5 6 7) | (0 1 3 5 6 7 8) | (1 2 3 4 5 6 8) | (1 3 4 5 7 8) | (0 2 3 5 7 8) | (1 2 3 5 8) | (0 3 5 8) | | | | -| (12 15 27 23 32 28) | (0 3) | (1 2 4) | (1 2 3 4 5) | (0 3 4 5) | (2 4 5) | | | | | | | | | -| (49 66 35 36 41 85 24 59 66 58) | (2) | (2 3 5) | (5 7) | (3 7 8) | (6 7 8) | (1 5 8) | (0 1 2 3 4 6 7 8 9) | (0 1 2 4 5 7 8 9) | (1 2 3 4 5 6 8 9) | (1 3 5 6 7 8 9) | (0 3 5 6 7 8 9) | (0 1 4 5 9) | | -| (32 36 28 28 46 32 41 45 30) | (4) | (1 4 5) | (2 3 4 6) | (0 2 3 6 7) | (0 1 2 3 6 7 8) | (1 5 7 8) | (0 6 7 8) | | | | | | | -| (143 136 128 21 145 109 42) | (1 2) | (0 1 2 4 5) | (2 4 5) | (0 1 3 4 6) | (0 3 4 6) | (0 4 6) | (0 6) | | | | | | | -| (30 29 30 165 131 61 11 13 24 71) | (3 4) | (3 4 5) | (0 2 3 5 6 8 9) | (0 2 4 5 7 8 9) | (0 2 3 4 5 9) | (3 5 7 8 9) | (1 3 9) | (1 5 9) | | | | | | -| (43 18 34 48 32 32 23) | (0 2 3 4 5) | (0 3 4 5) | (2 3 4 5 6) | (0 1 2 3 6) | (1 2 6) | | | | | | | | | -| (73 41 80 52 67 18 49 75 23 77) | (0 2 3 4 6 7) | (6 7) | (0 1 3 4 5 7 8) | (1 2 3 4 5 6 8 9) | (0 1 2 3 7 9) | (0 2 4 6 7 9) | (0 2 3 5 9) | (0 1 4 9) | (2 3 7 9) | (2 6 8 9) | (2 4 9) | | | -| (145 13 158 145 13) | (0 2) | (0 2 3) | (1 2 4) | | | | | | | | | | | -| (223 26 57 51 57 17 93 199 63 45) | (0 6) | (1 6) | (0 2 3 4 5 6 7) | (6 7) | (0 7) | (0 2 4 6 8) | (0 2 3 4 6 7 8 9) | (1 2 3 4 6 8 9) | (0 1 3 7 8 9) | (3 5 8 9) | | | | -| (41 41 43 68 46 46 61 65 69 29) | (1 6) | (0 1 7) | (3 4 7) | (2 3 4 5 6 7 8) | (0 2 3 6 7 8) | (2 3 4 5 8) | (3 5 8) | (0 1 2 3 4 7 8 9) | (1 2 3 4 7 8 9) | (0 3 5 6 8 9) | (0 3 4 6 8 9) | (1 2 4 6 8 9) | (5 6 8 9) | -| (48 83 75 50 66 48 89 93) | (0 2 5) | (3 4 5) | (2 3 6) | (4 6) | (1 2 4 5 6 7) | (0 1 2 3 6 7) | (1 3 4 6 7) | (2 4 5 6 7) | (0 1 6 7) | (1 4 7) | | | | -| (60 34 40 115 126 23 109) | (0) | (1 3) | (0 2 4) | (0 1 2 5) | (2 5) | (0 1 2 4 5 6) | (3 4 6) | | | | | | | -| (224 208 62 40 233 203 226 219) | (0 1 2 3 4) | (0 5) | (0 1 2 5 6) | (2 3 4 6) | (6) | (0 1 4 5 6 7) | (0 2 3 6 7) | (2 4 7) | (7) | | | | | -| (44 67 46 53 27 70 71 65 45 44) | (1 3 6) | (0 5 6) | (0 1 2 3 4 5 6 7) | (0 1 2 4 5 6 7) | (5 7) | (1 3 4 6 7 8) | (1 2 3 5 6 7 8 9) | (0 1 2 5 8 9) | (0 1 2 5 9) | (0 3 6 9) | | | | -| (157 16 30 30 64 29 43 43 47 49) | (0) | (4 6) | (1 2 3 4 7) | (0 1 2 3 4 6 7 8) | (0 2 3 5 8) | (0 2 4 7 8) | (1 3 4 5 6 7 9) | (4 5 6 7 8 9) | (2 3 4 6 8 9) | (3 4 5 6 8 9) | (0 2 4 6 9) | (0 9) | | -| (8 20 37 4) | (1) | (0 1 2) | (1 2) | (2) | (2 3) | (1 3) | | | | | | | | -| (60 71 64 56 11 87 91 44) | (0 2 4 5) | (0 1 2 3 5 6) | (1 2 3 5 6) | (0 1 2 6) | (1 2 3 5 6 7) | (1 3 5 6 7) | (0 5 6 7) | | | | | | | -| (27 82 67 61 47 74 82 63 69 56) | (1) | (5) | (0 4 5 7) | (1 5 6 7) | (1 2 3 4 5 6 7 8) | (0 1 2 4 6 7 8) | (1 2 3 6 8) | (1 2 5 6 7 8 9) | (2 3 4 6 7 9) | (1 2 3 4 7 9) | (1 4 5 6 8 9) | (0 3 9) | | -| (27 28 51 54 42 15 38 29 39 42) | (1 3 4 7) | (0 1 2 3 5 6 7 8) | (0 2 6 8) | (1 5 7 8) | (0 2 3 4 6 7 8 9) | (1 2 3 4 5 6 8 9) | (1 2 5 6 9) | (2 3 9) | (0 4 9) | | | | | -| (53 23 71 30 38 44 28 45) | (2 3 4) | (2 5) | (0 1 4 5 6) | (2 5 6) | (0 2 3 4 5 6 7) | (0 1 2 7) | (0 7) | | | | | | | -| (37 13 26 11 31 17 32 22) | (0 4) | (1 5) | (0 2 3 4 5 6) | (0 1 5 6) | (0 1 4 7) | (2 6 7) | | | | | | | | -| (33 28 29 36 32) | (1 2) | (1 2 3) | (0 3) | (1 2 3 4) | (2 3 4) | (0 4) | | | | | | | | -| (39 26 16 31 45 16 50 49) | (1 2 3 5 6) | (0 1 3 4 6 7) | (2 3 4 5 6 7) | (2 3 5 6 7) | (0 1 4 7) | (0 4 6 7) | | | | | | | | -| (42 60 31 44 73 44 49) | (0 2) | (0 2 3) | (0 1 2 3 4) | (0 2 4 5) | (5) | (0 1 3 4 6) | (1 3 4 5 6) | (1 4 6) | | | | | | -| (28 15 66 59 19) | (2) | (1 2 3) | (2 3) | (0 3) | (0 2 3 4) | (4) | | | | | | | | -| (19 24 44 39 33 18 56 44 30) | (2 5) | (1 2 4 5 6) | (2 6) | (3 6 7) | (3 7) | (0 7) | (1 2 4 8) | (0 8) | (4 8) | | | | | -| (22 32 28 28 24 36 14 17) | (0 1 3 5) | (2 5) | (2 4 6) | (0 1 2 4 5 6 7) | (1 2 3 4 5 7) | (0 2 3 5 6 7) | | | | | | | | -| (55 23 31 58 49 66 80 65 72) | (0 3) | (0 1 4 6 7) | (0 5 7) | (2 3 4 5 6 7 8) | (1 2 3 4 5 6 8) | (0 4 5 6 7 8) | (1 2 3 6 7 8) | (3 6 7 8) | (5 6 8) | (0 3 8) | | | | -| (29 33 4 16) | (0 1) | (1) | (1 2) | (0 1 3) | (0 3) | | | | | | | | | -| (30 78 105 170 48) | (0 1 2) | (0 1 3) | (1 3) | (2 3) | (1 3 4) | (0 3 4) | (1 4) | | | | | | | -| (31 81 67 81 83 40 55 17 29 78) | (1 2 3 4 5) | (1 3 4 5 6) | (1 3 4 6) | (2 6) | (0 1 2 3 4 6 8) | (0 1 2 3 5 7 8 9) | (1 2 3 4 5 7 8 9) | (0 1 2 3 4 6 9) | (0 1 2 3 5 8 9) | (2 4 9) | (1 3 9) | (4 9) | | -| (166 154 173 176 17 183 166) | (2 3) | (2 4) | (5) | (0 2 3 4 5 6) | (0 1 3 4 5 6) | (0 1 2 3 5 6) | | | | | | | | -| (33 181 19 39) | (0 1) | (1) | (2) | (0 2 3) | (2 3) | (3) | | | | | | | | -| (148 7 155 155) | (0 2 3) | (1 2 3) | | | | | | | | | | | | -| (138 146 47 31 160 41 32 24 54) | (0 1 4) | (0 1 2 3 4 5) | (1 5 7) | (3 4 7) | (0 1 4 5 6 8) | (0 2 3 5 8) | (2 4 6 8) | (4 5 7 8) | (1 2 6 8) | | | | | +| 77 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | +| 49 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | +| 5 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | -1 | -1 | +| 90 | 0 | 0 | 0 | 1 | 1 | 2 | 1 | 0 | 2 | 1 | +| -12 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | +| 68 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | -1 | +| 38 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | +| -18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | -1 | This is the tricky part; we want solve the row-reduced form, but we need to be careful with our choices if we have more than one @@ -362,8 +242,9 @@ possibility (-min (-map #'-sum (solve-row-reduced (row-reduce (matrix-buttons machine)))))) - (setq problematic (--first (not (solve-row-reduced (row-reduce (matrix-buttons it)))) machines)) + (setq problematic (--first (not (solve-row-reduced (identity (matrix-buttons it)))) machines)) + (minimal-pushes (cadr machines)) (row-reduce (matrix-buttons problematic)) @@ -379,6 +260,8 @@ possibility | 33.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 2.0 | 1.0 | | 19.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.0 | -1.0 | 0.0 | + +try this. create a distance in the space of buttons given by the number of elements in the difference #+begin_src emacs-lisp