Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
13
Task/100-doors/Clojure/100-doors-1.clj
Normal file
13
Task/100-doors/Clojure/100-doors-1.clj
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
(defn doors []
|
||||
(let [doors (into-array (repeat 100 false))]
|
||||
(doseq [pass (range 1 101)
|
||||
i (range (dec pass) 100 pass) ]
|
||||
(aset doors i (not (aget doors i))))
|
||||
doors))
|
||||
|
||||
(defn open-doors [] (for [[d n] (map vector (doors) (iterate inc 1)) :when d] n))
|
||||
|
||||
(defn print-open-doors []
|
||||
(println
|
||||
"Open doors after 100 passes:"
|
||||
(apply str (interpose ", " (open-doors)))))
|
||||
13
Task/100-doors/Clojure/100-doors-2.clj
Normal file
13
Task/100-doors/Clojure/100-doors-2.clj
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
(defn doors []
|
||||
(reduce (fn [doors toggle-idx] (update-in doors [toggle-idx] not))
|
||||
(into [] (repeat 100 false))
|
||||
(for [pass (range 1 101)
|
||||
i (range (dec pass) 100 pass) ]
|
||||
i)))
|
||||
|
||||
(defn open-doors [] (for [[d n] (map vector (doors) (iterate inc 1)) :when d] n))
|
||||
|
||||
(defn print-open-doors []
|
||||
(println
|
||||
"Open doors after 100 passes:"
|
||||
(apply str (interpose ", " (open-doors)))))
|
||||
11
Task/100-doors/Clojure/100-doors-3.clj
Normal file
11
Task/100-doors/Clojure/100-doors-3.clj
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
(defn open-doors []
|
||||
(->> (for [step (range 1 101), occ (range step 101 step)] occ)
|
||||
frequencies
|
||||
(filter (comp odd? val))
|
||||
keys
|
||||
sort))
|
||||
|
||||
(defn print-open-doors []
|
||||
(println
|
||||
"Open doors after 100 passes:"
|
||||
(apply str (interpose ", " (open-doors)))))
|
||||
11
Task/100-doors/Clojure/100-doors-4.clj
Normal file
11
Task/100-doors/Clojure/100-doors-4.clj
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
(defn doors []
|
||||
(reduce (fn [doors idx] (assoc doors idx true))
|
||||
(into [] (repeat 100 false))
|
||||
(map #(dec (* % %)) (range 1 11))))
|
||||
|
||||
(defn open-doors [] (for [[d n] (map vector (doors) (iterate inc 1)) :when d] n))
|
||||
|
||||
(defn print-open-doors []
|
||||
(println
|
||||
"Open doors after 100 passes:"
|
||||
(apply str (interpose ", " (open-doors)))))
|
||||
6
Task/100-doors/Clojure/100-doors-5.clj
Normal file
6
Task/100-doors/Clojure/100-doors-5.clj
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
(defn open-doors [] (->> (iterate inc 1) (map #(* % %)) (take-while #(<= % 100))))
|
||||
|
||||
(defn print-open-doors []
|
||||
(println
|
||||
"Open doors after 100 passes:"
|
||||
(apply str (interpose ", " (open-doors)))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue