randomGeometric¶
Generates pseudorandom numbers from a geometric distribution.
Synopsis¶
randomGeometric(nRandom, p)
Required Arguments¶
- int
nRandom(Input) - Number of random numbers to generate.
- float
p(Input) - Probability of success on each trial. Parameter
pmust be positive and less than 1.0.
Return Value¶
An integer array of length nRandom containing the random geometric
deviates.
Description¶
Function randomGeometric generates pseudorandom numbers from a geometric
distribution with parameter P, where P is the probability of getting a
success on any trial. A geometric deviate can be interpreted as the number
of trials until the first success (including the trial in which the first
success is obtained). The probability function is
for \(x=1,2,\ldots\) and \(0<P<1\).
The geometric distribution as defined above has mean \(1/P\).
The i-th geometric deviate is generated as the smallest integer not less than \((\log(U_i))/(\log(1-P))\), where the \(U_i\) are independent uniform(0, 1) random numbers (see Knuth 1981).
The geometric distribution is often defined on 0, 1, 2, …, with mean
\((1-P)/P\). Such deviates can be obtained by subtracting 1 from each
element of ir (the returned vector of random deviates).
Example¶
In this example, randomGeometric generates five pseudorandom geometric
deviates from a geometric distribution with parameter an equal to 0.3.
from numpy import *
from pyimsl.stat.randomGeometric import randomGeometric
from pyimsl.stat.randomSeedSet import randomSeedSet
from pyimsl.stat.writeMatrix import writeMatrix
n_random = 5
p = 0.3
randomSeedSet(123457)
ir = randomGeometric(n_random, p)
writeMatrix("Geometric(0.3) random deviates:", ir,
noColLabels=True)
Output¶
Geometric(0.3) random deviates:
1 4 1 2 1