Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defn towers [n]
- (cond
- (= n 1) (list 1)
- :else
- (apply conj (towers (dec n)) n (towers (dec n)))))
- (defn gray [n]
- (cond
- (= n 1) (list [0] [1])
- :else
- (let [firsthalf (map #(conj % 0) (gray (dec n)) )
- secondhalf (map #(conj % 1) (reverse (gray (dec n)))) ]
- (concat firsthalf secondhalf))))
- (defn rank [code]
- (cond
- (= code [0]) 0
- (= code [1]) 1
- :else
- (cond
- (= 0 (last code)) (rank (vec (drop-last code)))
- :else
- (dec (- (Math/pow 2 (count code)) (rank (vec (drop-last code))))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement