10 lines
419 B
Clojure
10 lines
419 B
Clojure
(defn iterator [a b]
|
|
(fn[x] (mod (+ (* a x) b) (bit-shift-left 1 31))))
|
|
|
|
(def bsd (drop 1 (iterate (iterator 1103515245 12345) 0)))
|
|
|
|
(def ms (drop 1 (for [x (iterate (iterator 214013 2531011) 0)] (bit-shift-right x 16))))
|
|
|
|
(take 10 bsd) ;-> (12345 1406932606 654583775 1449466924 229283573 1109335178 1051550459 1293799192 794471793 551188310)
|
|
(take 10 ms) ;-> (38 7719 21238 2437 8855 11797 8365 32285 10450 30612)
|