ÿþ2 9 0 C h a p t e r 7 . R a n d o m N u m b e r s
} w h i l e ( r s q > = 1 . 0 | | r s q = = 0 . 0 ) ; a n d i f t h e y a r e n o t , t r y a g a i n .
f a c = s q r t ( - 2 . 0 * l o g ( r s q ) / r s q ) ;
N o w m a k e t h e B o x - M u l l e r t r a n s f o r m a t i o n t o g e t t w o n o r m a l d e v i a t e s . R e t u r n o n e a n d
s a v e t h e o t h e r f o r n e x t t i m e .
g s e t = v 1 * f a c ;
i s e t = 1 ; S e t f l a g .
r e t u r n v 2 * f a c ;
} e l s e { W e h a v e a n e x t r a d e v i a t e h a n d y ,
i s e t = 0 ; s o u n s e t t h e f l a g ,
r e t u r n g s e t ; a n d r e t u r n i t .
}
}
[ 1 ] [ 2 ]
S e e D e v r o y e a n d B r a t l e y f o r m a n y a d d i t i o n a l a l g o r i t h m s .
C I T E D R E F E R E N C E S A N D F U R T H E R R E A D I N G :
D e v r o y e , L . 1 9 8 6 , N o n - U n i f o r m R a n d o m V a r i a t e G e n e r a t i o n ( N e w Y o r k : S p r i n g e r - V e r l a g ) , § 9 . 1 .
[ 1 ]
B r a t l e y , P . , F o x , B . L . , a n d S c h r a g e , E . L . 1 9 8 3 , A G u i d e t o S i m u l a t i o n ( N e w Y o r k : S p r i n g e r -
V e r l a g ) . [ 2 ]
K n u t h , D . E . 1 9 8 1 , S e m i n u m e r i c a l A l g o r i t h m s , 2 n d e d . , v o l . 2 o f T h e A r t o f C o m p u t e r P r o g r a m m i n g
( R e a d i n g , M A : A d d i s o n - W e s l e y ) , p p . 1 1 6 f f .
7 . 3 R e j e c t i o n M e t h o d : G a m m a , P o i s s o n ,
B i n o m i a l D e v i a t e s
T h e r e j e c t i o n m e t h o d i s a p o w e r f u l , g e n e r a l t e c h n i q u e f o r g e n e r a t i n g r a n d o m
d e v i a t e s w h o s e d i s t r i b u t i o n f u n c t i o n p ( x ) d x ( p r o b a b i l i t y o f a v a l u e o c c u r r i n g b e t w e e n
x a n d x + d x ) i s k n o w n a n d c o m p u t a b l e . T h e r e j e c t i o n m e t h o d d o e s n o t r e q u i r e
t h a t t h e c u m u l a t i v e d i s t r i b u t i o n f u n c t i o n [ i n d e f i n i t e i n t e g r a l o f p ( x ) ] b e r e a d i l y
c o m p u t a b l e , m u c h l e s s t h e i n v e r s e o f t h a t f u n c t i o n w h i c h w a s r e q u i r e d f o r t h e
t r a n s f o r m a t i o n m e t h o d i n t h e p r e v i o u s s e c t i o n .
T h e r e j e c t i o n m e t h o d i s b a s e d o n a s i m p l e g e o m e t r i c a l a r g u m e n t :
D r a w a g r a p h o f t h e p r o b a b i l i t y d i s t r i b u t i o n p ( x ) t h a t y o u w i s h t o g e n e r a t e , s o
t h a t t h e a r e a u n d e r t h e c u r v e i n a n y r a n g e o f x c o r r e s p o n d s t o t h e d e s i r e d p r o b a b i l i t y
o f g e n e r a t i n g a n x i n t h a t r a n g e . I f w e h a d s o m e w a y o f c h o o s i n g a r a n d o m p o i n t i n
t w o d i m e n s i o n s , w i t h u n i f o r m p r o b a b i l i t y i n t h e a r e a u n d e r y o u r c u r v e , t h e n t h e x
v a l u e o f t h a t r a n d o m p o i n t w o u l d h a v e t h e d e s i r e d d i s t r i b u t i o n .
N o w , o n t h e s a m e g r a p h , d r a w a n y o t h e r c u r v e f ( x ) w h i c h h a s f i n i t e ( n o t
i n f i n i t e ) a r e a a n d l i e s e v e r y w h e r e a b o v e y o u r o r i g i n a l p r o b a b i l i t y d i s t r i b u t i o n . ( T h i s
i s a l w a y s p o s s i b l e , b e c a u s e y o u r o r i g i n a l c u r v e e n c l o s e s o n l y u n i t a r e a , b y d e f i n i t i o n
o f p r o b a b i l i t y . ) W e w i l l c a l l t h i s f ( x ) t h e c o m p a r i s o n f u n c t i o n . I m a g i n e n o w
t h a t y o u h a v e s o m e w a y o f c h o o s i n g a r a n d o m p o i n t i n t w o d i m e n s i o n s t h a t i s
u n i f o r m i n t h e a r e a u n d e r t h e c o m p a r i s o n f u n c t i o n . W h e n e v e r t h a t p o i n t l i e s o u t s i d e
t h e a r e a u n d e r t h e o r i g i n a l p r o b a b i l i t y d i s t r i b u t i o n , w e w i l l r e j e c t i t a n d c h o o s e
a n o t h e r r a n d o m p o i n t . W h e n e v e r i t l i e s i n s i d e t h e a r e a u n d e r t h e o r i g i n a l p r o b a b i l i t y
d i s t r i b u t i o n , w e w i l l a c c e p t i t . I t s h o u l d b e o b v i o u s t h a t t h e a c c e p t e d p o i n t s a r e
u n i f o r m i n t h e a c c e p t e d a r e a , s o t h a t t h e i r x v a l u e s h a v e t h e d e s i r e d d i s t r i b u t i o n . I t
h t t p : / / w w w . n r . c o m o r c a l l 1 - 8 0 0 - 8 7 2 - 7 4 2 3 ( N o r t h A m e r i c a o n l y ) , o r s e n d e m a i l t o d i r e c t c u s t s e r v @ c a m b r i d g e . o r g ( o u t s i d e N o r t h A m e r i c a ) .
r e a d a b l e f i l e s ( i n c l u d i n g t h i s o n e ) t o a n y s e r v e r c o m p u t e r , i s s t r i c t l y p r o h i b i t e d . T o o r d e r N u m e r i c a l R e c i p e s b o o k s o r C D R O M s , v i s i t w e b s i t e
P e r m i s s i o n i s g r a n t e d f o r i n t e r n e t u s e r s t o m a k e o n e p a p e r c o p y f o r t h e i r o w n p e r s o n a l u s e . F u r t h e r r e p r o d u c t i o n , o r a n y c o p y i n g o f m a c h i n e -
C o p y r i g h t ( C ) 1 9 8 8 - 1 9 9 2 b y C a m b r i d g e U n i v e r s i t y P r e s s . P r o g r a m s C o p y r i g h t ( C ) 1 9 8 8 - 1 9 9 2 b y N u m e r i c a l R e c i p e s S o f t w a r e .
S a m p l e p a g e f r o m N U M E R I C A L R E C I P E S I N C : T H E A R T O F S C I E N T I F I C C O M P U T I N G ( I S B N 0 - 5 2 1 - 4 3 1 0 8 - 5 )
7 . 3 R e j e c t i o n M e t h o d : G a m m a , P o i s s o n , B i n o m i a l D e v i a t e s 2 9 1
A
f i r s t r a n d o m
d e v i a t e i n
#x
f ( x ) d x
!#
0
r e j e c t x 0 f ( x 0 )
f ( x )
a c c e p t x 0
s e c o n d r a n d o m
d e v i a t e i n
p ( x )
0
0
x 0
F i g u r e 7 . 3 . 1 . R e j e c t i o n m e t h o d f o r g e n e r a t i n g a r a n d o m d e v i a t e x f r o m a k n o w n p r o b a b i l i t y d i s t r i b u t i o n
p ( x ) t h a t i s e v e r y w h e r e l e s s t h a n s o m e o t h e r f u n c t i o n f ( x ) . T h e t r a n s f o r m a t i o n m e t h o d i s f i r s t u s e d t o
g e n e r a t e a r a n d o m d e v i a t e x o f t h e d i s t r i b u t i o n f ( c o m p a r e F i g u r e 7 . 2 . 1 ) . A s e c o n d u n i f o r m d e v i a t e i s
u s e d t o d e c i d e w h e t h e r t o a c c e p t o r r e j e c t t h a t x . I f i t i s r e j e c t e d , a n e w d e v i a t e o f f i s f o u n d ; a n d s o o n .
T h e r a t i o o f a c c e p t e d t o r e j e c t e d p o i n t s i s t h e r a t i o o f t h e a r e a u n d e r p t o t h e a r e a b e t w e e n p a n d f .
s h o u l d a l s o b e o b v i o u s t h a t t h e f r a c t i o n o f p o i n t s r e j e c t e d j u s t d e p e n d s o n t h e r a t i o
o f t h e a r e a o f t h e c o m p a r i s o n f u n c t i o n t o t h e a r e a o f t h e p r o b a b i l i t y d i s t r i b u t i o n
f u n c t i o n , n o t o n t h e d e t a i l s o f s h a p e o f e i t h e r f u n c t i o n . F o r e x a m p l e , a c o m p a r i s o n
f u n c t i o n w h o s e a r e a i s l e s s t h a n 2 w i l l r e j e c t f e w e r t h a n h a l f t h e p o i n t s , e v e n i f i t
a p p r o x i m a t e s t h e p r o b a b i l i t y f u n c t i o n v e r y b a d l y a t s o m e v a l u e s o f x , e . g . , r e m a i n s
f i n i t e i n s o m e r e g i o n w h e r e p ( x ) i s z e r o .
I t r e m a i n s o n l y t o s u g g e s t h o w t o c h o o s e a u n i f o r m r a n d o m p o i n t i n t w o
d i m e n s i o n s u n d e r t h e c o m p a r i s o n f u n c t i o n f ( x ) . A v a r i a n t o f t h e t r a n s f o r m a t i o n
m e t h o d ( § 7 . 2 ) d o e s n i c e l y : B e s u r e t o h a v e c h o s e n a c o m p a r i s o n f u n c t i o n w h o s e
i n d e f i n i t e i n t e g r a l i s k n o w n a n a l y t i c a l l y , a n d i s a l s o a n a l y t i c a l l y i n v e r t i b l e t o g i v e x
a s a f u n c t i o n o f a r e a u n d e r t h e c o m p a r i s o n f u n c t i o n t o t h e l e f t o f x . N o w p i c k a
u n i f o r m d e v i a t e b e t w e e n 0 a n d A , w h e r e A i s t h e t o t a l a r e a u n d e r f ( x ) , a n d u s e i t
t o g e t a c o r r e s p o n d i n g x . T h e n p i c k a u n i f o r m d e v i a t e b e t w e e n 0 a n d f ( x ) a s t h e y
v a l u e f o r t h e t w o - d i m e n s i o n a l p o i n t . Y o u s h o u l d b e a b l e t o c o n v i n c e y o u r s e l f t h a t t h e
p o i n t ( x , y ) i s u n i f o r m l y d i s t r i b u t e d i n t h e a r e a u n d e r t h e c o m p a r i s o n f u n c t i o n f ( x ) .
A n e q u i v a l e n t p r o c e d u r e i s t o p i c k t h e s e c o n d u n i f o r m d e v i a t e b e t w e e n z e r o
a n d o n e , a n d a c c e p t o r r e j e c t a c c o r d i n g t o w h e t h e r i t i s r e s p e c t i v e l y l e s s t h a n o r
g r e a t e r t h a n t h e r a t i o p ( x ) / f ( x ) .
S o , t o s u m m a r i z e , t h e r e j e c t i o n m e t h o d f o r s o m e g i v e n p ( x ) r e q u i r e s t h a t o n e
f i n d , o n c e a n d f o r a l l , s o m e r e a s o n a b l y g o o d c o m p a r i s o n f u n c t i o n f ( x ) . T h e r e a f t e r ,
e a c h d e v i a t e g e n e r a t e d r e q u i r e s t w o u n i f o r m r a n d o m d e v i a t e s , o n e e v a l u a t i o n o f f ( t o
g e t t h e c o o r d i n a t e y ) , a n d o n e e v a l u a t i o n o f p ( t o d e c i d e w h e t h e r t o a c c e p t o r r e j e c t
t h e p o i n t x , y ) . F i g u r e 7 . 3 . 1 i l l u s t r a t e s t h e p r o c e d u r e . T h e n , o f c o u r s e , t h i s p r o c e d u r e
m u s t b e r e p e a t e d , o n t h e a v e r a g e , A t i m e s b e f o r e t h e f i n a l d e v i a t e i s o b t a i n e d .
G a m m a D i s t r i b u t i o n
T h e g a m m a d i s t r i b u t i o n o f i n t e g e r o r d e r a > 0 i s t h e w a i t i n g t i m e t o t h e a t h
e v e n t i n a P o i s s o n r a n d o m p r o c e s s o f u n i t m e a n . F o r e x a m p l e , w h e n a = 1 , i t i s j u s t
t h e e x p o n e n t i a l d i s t r i b u t i o n o f § 7 . 2 , t h e w a i t i n g t i m e t o t h e f i r s t e v e n t .
h t t p : / / w w w . n r . c o m o r c a l l 1 - 8 0 0 - 8 7 2 - 7 4 2 3 ( N o r t h A m e r i c a o n l y ) , o r s e n d e m a i l t o d i r e c t c u s t s e r v @ c a m b r i d g e . o r g ( o u t s i d e N o r t h A m e r i c a ) .
r e a d a b l e f i l e s ( i n c l u d i n g t h i s o n e ) t o a n y s e r v e r c o m p u t e r , i s s t r i c t l y p r o h i b i t e d . T o o r d e r N u m e r i c a l R e c i p e s b o o k s o r C D R O M s , v i s i t w e b s i t e
P e r m i s s i o n i s g r a n t e d f o r i n t e r n e t u s e r s t o m a k e o n e p a p e r c o p y f o r t h e i r o w n p e r s o n a l u s e . F u r t h e r r e p r o d u c t i o n , o r a n y c o p y i n g o f m a c h i n e -
C o p y r i g h t ( C ) 1 9 8 8 - 1 9 9 2 b y C a m b r i d g e U n i v e r s i t y P r e s s . P r o g r a m s C o p y r i g h t ( C ) 1 9 8 8 - 1 9 9 2 b y N u m e r i c a l R e c i p e s S o f t w a r e .
S a m p l e p a g e f r o m N U M E R I C A L R E C I P E S I N C : T H E A R T O F S C I E N T I F I C C O M P U T I N G ( I S B N 0 - 5 2 1 - 4 3 1 0 8 - 5 )
2 9 2 C h a p t e r 7 . R a n d o m N u m b e r s
A g a m m a d e v i a t e h a s p r o b a b i l i t y p a ( x ) d x o f o c c u r r i n g w i t h a v a l u e b e t w e e n
x a n d x + d x , w h e r e
x a - 1 e - x
p a ( x ) d x = d x x > 0 ( 7 . 3 . 1 )
“( a )
T o g e n e r a t e d e v i a t e s o f ( 7 . 3 . 1 ) f o r s m a l l v a l u e s o f a , i t i s b e s t t o a d d u p a
e x p o n e n t i a l l y d i s t r i b u t e d w a i t i n g t i m e s , i . e . , l o g a r i t h m s o f u n i f o r m d e v i a t e s . S i n c e
t h e s u m o f l o g a r i t h m s i s t h e l o g a r i t h m o f t h e p r o d u c t , o n e r e a l l y h a s o n l y t o g e n e r a t e
t h e p r o d u c t o f a u n i f o r m d e v i a t e s , t h e n t a k e t h e l o g .
F o r l a r g e r v a l u e s o f a , t h e d i s t r i b u t i o n ( 7 . 3 . 1 ) h a s t y p i c a l l y b e l l - s h a p e d
"a
f o r m , w i t h a p e a k a t x = a a n d a h a l f - w i d t h o f a b o u t a .
W e w i l l b e i n t e r e s t e d i n s e v e r a l p r o b a b i l i t y d i s t r i b u t i o n s w i t h t h i s s a m e q u a l -
i t a t i v e f o r m . A u s e f u l c o m p a r i s o n f u n c t i o n i n s u c h c a s e s i s d e r i v e d f r o m t h e
L o r e n t z i a n d i s t r i b u t i o n
1 1
p ( y ) d y = d y ( 7 . 3 . 2 )
À 1 + y 2
w h o s e i n v e r s e i n d e f i n i t e i n t e g r a l i s j u s t t h e t a n g e n t f u n c t i o n . I t f o l l o w s t h a t t h e
x - c o o r d i n a t e o f a n a r e a - u n i f o r m r a n d o m p o i n t u n d e r t h e c o m p a r i s o n f u n c t i o n
c 0
f ( x ) = ( 7 . 3 . 3 )
1 + ( x - x 0 ) 2 / a 2
0
f o r a n y c o n s t a n t s a 0 , c 0 , a n d x 0 , c a n b e g e n e r a t e d b y t h e p r e s c r i p t i o n
x = a 0 t a n ( ÀU ) + x 0 ( 7 . 3 . 4 )
w h e r e U i s a u n i f o r m d e v i a t e b e t w e e n 0 a n d 1 . T h u s , f o r s o m e s p e c i f i c b e l l - s h a p e d
p ( x ) p r o b a b i l i t y d i s t r i b u t i o n , w e n e e d o n l y f i n d c o n s t a n t s a 0 , c 0 , x 0 , w i t h t h e p r o d u c t
a 0 c 0 ( w h i c h d e t e r m i n e s t h e a r e a ) a s s m a l l a s p o s s i b l e , s u c h t h a t ( 7 . 3 . 3 ) i s e v e r y w h e r e
g r e a t e r t h a n p ( x ) .
A h r e n s h a s d o n e t h i s f o r t h e g a m m a d i s t r i b u t i o n , y i e l d i n g t h e f o l l o w i n g
[ 1 ]
a l g o r i t h m ( a s d e s c r i b e d i n K n u t h ) :
# i n c l u d e <