racket/collects/mztake/demos/montecarlo/montecarlo.ss
Jono Spiro ffd45198fa demos are updated based on feedback.
a few "useful-code" functions were added and documented.

svn: r149
2004-08-06 11:25:19 +00:00

15 lines
522 B
Scheme

(module montecarlo mzscheme
;; a seed specially chosen because it isn't terribly erratic when converging on pi
(random-seed 846259386)
(define (run)
(let loop ([hits 1]
[total 1])
(let* ([x (- (random 401) 200)]
[y (- (random 401) 200)]
[length (sqrt (+ (* x x) (* y y)))]
[pi (* 4. (/ hits total))])
(cond [(length . < . 200)
(loop (add1 hits) (add1 total))]
[else (loop hits (add1 total))]))))
(run))