Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save flengyel/1450321 to your computer and use it in GitHub Desktop.
Save flengyel/1450321 to your computer and use it in GitHub Desktop.
;; flengyel's solution to Sum Some Set Subsets
;; https://4clojure.com/problem/131
(fn [s & ss]
(letfn [
(subsets [s]
(if (empty? s)
#{#{}}
(let [x (set (list (first s)))
dx (clojure.set/difference s x)
t (subsets dx)]
(clojure.set/union t
(map (partial into x) t)))))
(nonempty-subsets [s]
(clojure.set/difference (subsets s) #{#{}}))
(setsums [s] (set (map #(reduce + %1) (nonempty-subsets s))))]
(not (empty? (apply clojure.set/intersection (map setsums (conj ss s)))))))
@flengyel
Copy link
Author

flengyel commented Dec 9, 2011

A straightforward and computationally inefficient application of the subset calculation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment