This commit is contained in:
Ingy döt Net 2013-10-27 22:24:23 +00:00
parent 6f050a029e
commit 776bba907c
3887 changed files with 59894 additions and 7280 deletions

View file

@ -0,0 +1,19 @@
(defn perms
"produce all the permutations of a finite sequence"
[ds]
(if (empty? ds)
[]
(let [rotseq (for [n (range (count ds))] (concat (drop n ds) (take n ds)))]
(reduce-with [rs [], [[d & ds]] rotseq]
(concat rs (if (empty? ds) [[d]] (map #(cons d %) (perms ds))))))))
(doseq [result results]
(let [seed (first result)
seeds (->> seed perms (map vec) set sort (remove (comp zero? first)))]
(apply println "Seed value(s):" (map #(apply str %) seeds)))))
(println)
(println "Iterations:" (count result))
(println)
(println "Sequence:")
(doseq [ds result]
(println (apply str ds))))