Skip to content

Instantly share code, notes, and snippets.

@amalloy
Forked from danielstockton/attempt.clj
Last active August 29, 2015 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amalloy/70c58e289de9e892468d to your computer and use it in GitHub Desktop.
Save amalloy/70c58e289de9e892468d to your computer and use it in GitHub Desktop.
(def numbers [18897109, 12828837, 9461105, 6371773, 5965343, 5946800, 5582170,
5564635, 5268860, 4552402, 4335391, 4296250, 4224851, 4192887, 3439809, 3279833,
3095313, 2812896, 2783243, 2710489, 2543482, 2356285, 2226009, 2149127, 2142508,
2134411])
(defn summing-to [coll n]
(cond (zero? n) '(())
(empty? coll) '()
:else (let [x (first coll)]
(if (> x n)
'()
(concat (for [s (summing-to (rest coll) (- n x))]
(cons x s))
(summing-to (rest coll) n))))))
(defn solve-census []
(first (summing-to (sort-by - numbers)
100000000)))
The 2010 Census puts populations of 26 largest US metro areas at 18897109, 12828837, 9461105, 6371773, 5965343, 5946800, 5582170, 5564635, 5268860, 4552402, 4335391, 4296250, 4224851, 4192887, 3439809, 3279833, 3095313, 2812896, 2783243, 2710489, 2543482, 2356285, 2226009, 2149127, 2142508, and 2134411.
Can you find a subset of these areas where a total of exactly 100,000,000 people live, assuming the census estimates are exactly right? Provide the answer and code or reasoning used.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment