src/turing-omnibus/monte-carlo.lisp @ bc8ed2a9b4c0
Start cleaning this repo up
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Fri, 26 Jan 2018 21:27:01 -0500 |
| parents | de58fc1af1e5 |
| children | (none) |
(defpackage :sand.turing-omnibus.monto-carlo (:use :cl :losh :iterate :sand.quickutils :sand.utils)) (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)