Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,32 @@
|
|||
#lang racket
|
||||
(require racket/fixnum)
|
||||
(define t (make-parameter 100))
|
||||
|
||||
(define (Rn v)
|
||||
(define (inner-Rn rv idx b-1)
|
||||
(define b (fxvector-ref v idx))
|
||||
(define rv+ (if (and (= b 1) (= b-1 0)) (add1 rv) rv))
|
||||
(if (zero? idx) rv+ (inner-Rn rv+ (sub1 idx) b)))
|
||||
(inner-Rn 0 (sub1 (fxvector-length v)) 0))
|
||||
|
||||
(define ((make-random-bit-vector p) n)
|
||||
(for/fxvector
|
||||
#:length n ((i n))
|
||||
(if (<= (random) p) 1 0)))
|
||||
|
||||
(define (Rn/n l->p n) (/ (Rn (l->p n)) n))
|
||||
|
||||
(for ((p (in-list '(1/10 3/10 1/2 7/10 9/10))))
|
||||
(define l->p (make-random-bit-vector p))
|
||||
(define Kp (* p (- 1 p)))
|
||||
(printf "p = ~a\tK(p) =\t~a\t~a~%" p Kp (real->decimal-string Kp 4))
|
||||
(for ((n (in-list '(10 100 1000 10000))))
|
||||
(define sum-Rn/n (for/sum ((i (in-range (t)))) (Rn/n l->p n)))
|
||||
(define sum-Rn/n/t (/ sum-Rn/n (t)))
|
||||
(printf "mean(R_~a/~a) =\t~a\t~a~%"
|
||||
n n sum-Rn/n/t (real->decimal-string sum-Rn/n/t 4)))
|
||||
(newline))
|
||||
|
||||
(module+ test
|
||||
(require rackunit)
|
||||
(check-eq? (Rn (fxvector 1 1 0 0 0 1 0 1 1 1)) 3))
|
||||
Loading…
Add table
Add a link
Reference in a new issue