From 63f605a93b434b1cc92a54a41839a0c3d7eb2f0d Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Tue, 25 Mar 2014 14:08:44 -0500 Subject: [PATCH] clean up pick-an-index for inclusion in a paper --- pkgs/redex-pkgs/redex-lib/redex/private/generate-term.rkt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/redex-pkgs/redex-lib/redex/private/generate-term.rkt b/pkgs/redex-pkgs/redex-lib/redex/private/generate-term.rkt index 4e10b6e22d..462260c00c 100644 --- a/pkgs/redex-pkgs/redex-lib/redex/private/generate-term.rkt +++ b/pkgs/redex-pkgs/redex-lib/redex/private/generate-term.rkt @@ -287,15 +287,16 @@ (values (enum-ith enum (random-natural the-size)) 'ignored))])) +;; pick-an-index : ([0,1] -> Nat) ∪ (-> Nat) (define (pick-an-index [prob-of-zero 0.01]) (max (random-natural/no-mean prob-of-zero) (random-natural/no-mean prob-of-zero) (random-natural/no-mean prob-of-zero))) -;; (: random-natural/no-mean (-> Real Natural)) +;; random-natural/no-mean : [0,1] -> Nat (define (random-natural/no-mean prob-zero) - (define n (exact-floor (sample (geometric-dist prob-zero)))) - (define m1 (expt 2 n)) + (define x (sample (geometric-dist prob-zero))) + (define m1 (expt 2 (exact-floor x))) (define m0 (quotient m1 2)) (random-integer m0 m1))