PasteRack.org
Paste # 86500
2018-07-13 08:12:58

Fork as a new paste.

Paste viewed 1460 times.


Embed:

draw-from-gauss

  1. #lang racket
  2.  
  3. ; Number Number -> Number
  4. ; x sigma -> Gaussian
  5. (define (gauss x sigma)
  6.   (*
  7.    (/ 1 (* sigma (sqrt (* 2 pi))))
  8.    (exp
  9.     (- 0
  10.        (sqr
  11.         (/ x (* (sqrt 2) sigma)))))))
  12.  
  13. ; Number Number -> Number
  14. ; return a^b, but imprecise
  15. (define (~^ a b)
  16.   (exp (* b (log a))))
  17.  
  18. ; Number -> Number
  19. ; returns random number between [0 and 1)
  20. ; with n digits behind comma
  21. (define (rand-0-1-n n)
  22.   (cond
  23.     [(>= n 0)
  24.      (/ (random (inexact->exact (round (~^ 10 n))))
  25.         (inexact->exact (round (~^ 10 n))))]
  26.     [else
  27.      "n must be greater or equal 0"]))

=>