; round to 5
(define random
(let* ((a 69069) (c 1234567) (m 4294967296.)
(seed 20190813))
(lambda args
(when (pair? args) (set! seed (modulo (car args) m)))
(set! seed (modulo (+ (* a seed) c) m))
(/ seed m))))
(define speeds
(do ((n 100 (- n 1))
(xs (list) (cons (+ (* (random) 19) 40) xs)))
((zero? n) xs)))
(define (average xs) (/ (apply + xs) (length xs)))
(display (average speeds)) (newline)
(define (round5 x) (inexact->exact (* (floor (/ (+ x 2.5) 5)) 5)))
(display (round5 (average speeds))) (newline)
OyByb3VuZCB0byA1CgooZGVmaW5lIHJhbmRvbQogIChsZXQqICgoYSA2OTA2OSkgKGMgMTIzNDU2NykgKG0gNDI5NDk2NzI5Ni4pCiAgICAgICAgIChzZWVkIDIwMTkwODEzKSkKICAgIChsYW1iZGEgYXJncwogICAgICAod2hlbiAocGFpcj8gYXJncykgKHNldCEgc2VlZCAobW9kdWxvIChjYXIgYXJncykgbSkpKQogICAgICAoc2V0ISBzZWVkIChtb2R1bG8gKCsgKCogYSBzZWVkKSBjKSBtKSkKICAgICAgKC8gc2VlZCBtKSkpKQoKKGRlZmluZSBzcGVlZHMKICAoZG8gKChuIDEwMCAoLSBuIDEpKQogICAgICAgKHhzIChsaXN0KSAoY29ucyAoKyAoKiAocmFuZG9tKSAxOSkgNDApIHhzKSkpCiAgICAgICgoemVybz8gbikgeHMpKSkKCihkZWZpbmUgKGF2ZXJhZ2UgeHMpICgvIChhcHBseSArIHhzKSAobGVuZ3RoIHhzKSkpCgooZGlzcGxheSAoYXZlcmFnZSBzcGVlZHMpKSAobmV3bGluZSkKCihkZWZpbmUgKHJvdW5kNSB4KSAoaW5leGFjdC0+ZXhhY3QgKCogKGZsb29yICgvICgrIHggMi41KSA1KSkgNSkpKQoKKGRpc3BsYXkgKHJvdW5kNSAoYXZlcmFnZSBzcGVlZHMpKSkgKG5ld2xpbmUp