A random number generator built from scratch for ISYE6644 class project
Project description
Random Variate Generator
This package provides access to a few frequently used discrete and continuous distributions.
Installation
Normal Installation
pip install HomemadeRandom
API Details and Examples
Start using the library by running
from HomemadeRandom import Random
Initialize a HomemadeRandom object with two parameters: type of base random number generator and a seed.
Select a base random number generator from the following:
- "desert" - desert island. A good LCG (linear congruential generator).
- The seed must be between 1 and 2147483646 (inclusive)
- "randu" - bad LCG
- The seed must be between 1 and 2147483647 (inclusive)
Example:
random_object = Random('desert', seed=10)
Discrete Distributions
-
Bernoulli
HomemadeRandom.bernoulli(p=0.5)
Parameter: (optional) p: floats. 0 <= p <= 1. Probability of a success event -
Binomial
HomemadeRandom.binomial(n, p)
Parameter: n: int. n > 0. Total number of trials
Parameter: p: floats. 0 <= p <= 1. Probability of a success event -
Geometric
HomemadeRandom.geometric(p, mode=0)
Parameter: p: floats. 0 <= p <= 1. Probability of a success event
Parameter: (optional) mode: int. Mode 0 is the fast and direct way. Any other mode will use the other implementation, which was implemented for academic purpose. -
Poisson
HomemadeRandom.poisson(lmbda)
Parameter: lmbda: floats. lmbda >= 0. Number of arrivals in one time unit
Continuous Distributions
-
Uniform
HomemadeRandom.uniform(a=0, b=1)
Parameter: (optional) a: floats. lower bound of uniform distribution, inclusive
Parameter: (optional) b: floats. upper bound of uniform distribution, exclusive -
Exponential
HomemadeRandom.exponential(lmbda)
Parameter: lmbda: mean time between events -
Normal
HomemadeRandom.normal(mu=0, sigma=1.0)
Parameter: (optional) mu: floats. mean of a normal distribution Parameter: (optional) sigma: floats. standard deviation of a normal distribution -
Gamma
HomemadeRandom.gamma(alpha, beta)
Parameter: alpha: floats. shape parameter
Parameter: beta: floats. rate parameter -
Weibull
HomemadeRandom.weibull(alpha, beta)
Parameter: alpha: floats. shape parameter
Parameter: beta: floats. scale parameter -
Triangular
HomemadeRandom.triangular(low=0.0, high=1.0, mode=None)
Parameter: low: floats. lower limit
Parameter: high: floats. upper limit
Parameter: mode: floats. number with highest probability where a <= c <= b
See tests/test.py
for actual usage
[0.0.1] - 2020-11-30
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for HomemadeRandom-0.1.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef6a9096466c1d850e14eed3712fdfde8a3890d75a0aa011f8424d9187b3a3ba |
|
MD5 | 888d054f601f4208d87e8e862a35f557 |
|
BLAKE2b-256 | 412d036dfb77c7b9cda344b8e2e93b348778d483e416da33cbefd49c4923f6d1 |