src/turing-omnibus/monte-carlo.lisp @ 02235ffe8b98
Add a name generator
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Thu, 26 Jan 2017 23:53:51 +0000 |
| parents | de58fc1af1e5 |
| children | bc8ed2a9b4c0 |
(in-package :sand.turing-omnibus.monto-carlo) ;;;; From The New Turing Omnibus, Chapter 4 (defun frequency (alpha time) (* (/ alpha) (exp (- (/ time alpha))))) (defun cumulative-frequency (alpha time) (- 1 (exp (- (/ time alpha))))) (defun inverse-cumulative-frequency (alpha x) (* alpha (log (- 1 x)))) ;; Something is fucky with the above inverse function given by the book... `α ;; ln(1 - x)` will always give a negative result (for x in [0, 1)), so how can ;; we use it as a number of seconds to wait? ; (defun simulate (1000) ; (let ((max-time ))) ; ) ; (gnuplot-function (curry #'inverse-cumulative-frequency 1.0) ; :start 0.0 ; :end 1.00 ; :step 0.1)