📄 documentation.tex
字号:
\documentclass[a4paper,12pt]{article}
\usepackage{a4wide}
\usepackage{times}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{amsmath, amssymb, verbatim}
\oddsidemargin0cm
\topmargin -1cm
\textwidth16.5cm
\textheight23.0cm
\renewcommand{\baselinestretch}{1.2}
\title{Random Number Generator}
\date{}
\author{Weili Chen, Zixuan Ma}
\begin{document}
\maketitle
\begin{center}
Beta Version, 10 May 2006
\bigskip
Everyone is permitted to copy and distribute verbatim copies of this
documentation for any purposes.
\end{center}
\section{Introduction}
\noindent This package is for the convenience of those who are doing
mathematical and statistical research. We are providing this package
because it's very difficult to find any package for random number
generators on Internet, let alone open source. You may find a few in
Java language, but you can hardly find any in C.\\
\\
\noindent This package is a virtually complete suite of random
number generators. It is able to generate random numbers for various
distributions. It is normal to provide uniform, normal, poisson, but
such distribution as chi-square and exponential are seldom heard of.
\section{Function Usage}
\paragraph{Bernoulli distribution}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = $\left\{
\begin{array}{ll}
p & \textrm{if } x = 1 \\
1 - p & \textrm{if } x = 0 \\
0 & \textrm{otherwise}
\end{array} \right.$\\
\noindent Possible generated $x$ values \> = 0, 1\\
\noindent Function name \> = \texttt{bernoulli(int p)}\\
\noindent Parameter \texttt{p} \> = probability of success $(p)$\\
\noindent Mean \> = $p$\\
\noindent Variance \>= $p (1 - p)$\\
\noindent Generator method \>= Accept/Reject\\
\end{tabbing}
\paragraph{Binomial distribution}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = $\left( \begin{array}{c}n \\ x \end{array} \right) p^x (1-p)^x$, $n > 0$\\
\noindent Possible generated $x$ values \> = 0,1,2,3 ... \\
\noindent Function name \> = \texttt{binomial(double p, int n)}\\
\noindent Parameter \texttt{p} \> = probability of success $(p)$\\
\noindent Parameter \texttt{n} \> = number of trials $(n)$\\
\noindent Mean \> = $np$\\
\noindent Variance \>= $np (1 - p)$\\
\noindent Generator method \>= Accept/Reject\\
\end{tabbing}
\paragraph{Negative Binomial distribution}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = $\left( \begin{array}{c}r + x - 1 \\ x \end{array} \right) p^r (1-p)^x$, $r > 0$\\
\noindent Possible generated $x$ values \> = 0,1,2,3 ... \\
\noindent Function name \> = \texttt{negativeBinomial(double p, int r)}\\
\noindent Parameter \texttt{p} \> = probability of success $(p)$\\
\noindent Parameter \texttt{r} \> = number of successes $(r)$\\
\noindent Mean \> = $\frac{r(1-p)}{p}$\\
\noindent Variance \>= $\frac{r(1 - p)}{ p^2}$\\
\noindent Generator method \>= Accept/Reject\\
\end{tabbing}
\paragraph{Poisson distribution}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = $\frac{e^{\lambda} \lambda^x}{x!}$\\
\noindent Possible generated $x$ values \> = 0,1,2,3 ... \\
\noindent Function name \> = \texttt{poisson(int lambda)}\\
\noindent Parameter \texttt{lambda} \> = mean value of distribution $(\lambda)$\\
\noindent Mean \> = $\lambda$\\
\noindent Variance \>= $\lambda$\\
\noindent Generator method \>= Accept/Reject\\
\end{tabbing}
\newpage
\paragraph{Geometric distribution}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = $p (1 - p)^x$\\
\noindent Possible generated $x$ values \> = 0,1,2,3 ... \\
\noindent Function name \> = \texttt{geometric(double p)}\\
\noindent Parameter \texttt{p} \> = probability of success $(p)$\\
\noindent Mean \> = $\frac{1 - p}{p}$\\
\noindent Variance \>= $\frac{1-p}{p^2}$\\
\noindent Generator method \>= Accept/Reject\\
\end{tabbing}
\paragraph{Uniform distribution}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = 1\\
\noindent Possible generated $x$ values \> = $[0, 1)$\\
\noindent Function name \> = \texttt{uniform()}\\
\noindent Mean \> = $\frac{1}{2}$\\
\noindent Variance \>= $\frac{1}{12}$\\
\noindent Generator method \>= Using C library function\\
\end{tabbing}
\paragraph{Exponential distribution}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = $\lambda e^{-\lambda x}$\\
\noindent Possible generated $x$ values \> = $(0, \infty)$ \\
\noindent Function name \> = \texttt{exponential(double lambda)}\\
\noindent Parameter \texttt{lambda} \> = rate parameter $(\lambda)$\\
\noindent Mean \> = $\frac{1}{\lambda}$\\
\noindent Variance \>= $\frac{1}{\lambda^2}$\\
\noindent Generator method \>= Inverse Transform\\
\end{tabbing}
\newpage
\paragraph{Weibull distribution (Two Parameter)}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = $(\frac{k}{\lambda}) (\frac{x}{\lambda})^{k-1} e^{(-\frac{x}{\lambda})^k}$, $k > 0$, $\lambda >0$\\
\noindent Possible generated $x$ values \> = $[0, \infty)$ \\
\noindent Function name \> = \texttt{weibull(double k, double lambda)}\\
\noindent Parameter \texttt{k} \> = shape parameter $(k)$\\
\noindent Parameter \texttt{lambda} \> = scale parameter $(\lambda)$\\
\noindent Mean \> = $\lambda \Gamma (1+ \frac{1}{k})$\\
\noindent Variance \>= $\lambda^2 [\Gamma (1+ \frac{2}{k}) - \Gamma^2 (1+ \frac{1}{k})]$\\
\noindent Generator method \>= Inverse Transform\\
\end{tabbing}
\paragraph{Normal distribution}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = $ \frac{1}{\sqrt{2 \pi} \sigma} e^{-0.5\frac{(x - \mu)^2}{\sigma^2}}$\\
\noindent Possible generated $x$ values \> = $(\infty, \infty)$ \\
\noindent Function name \> = \texttt{normal(double mu, double sigma)}\\
\noindent Parameter \texttt{mu} \> = mean of normal distribution $(\mu)$\\
\noindent Parameter \texttt{sigma} \> = standard deviation of normal distribution $(\sigma)$\\
\noindent Mean \> = $\mu$\\
\noindent Variance \>= $\sigma^2$\\
\noindent Generator method \>= Accept/Reject for N(0,1) followed by Convolution\\
\end{tabbing}
\paragraph{Log-Normal distribution}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = $ \frac{1}{x\sqrt{2 \pi} \sigma} e^{-0.5\frac{(\log(x) - \mu)^2}{\sigma^2}}$\\
\noindent Possible generated $x$ values \> = $(0, \infty)$ \\
\noindent Function name \> = \texttt{lognormal(double mu, double sigma)}\\
\noindent Parameter \texttt{mu} \> = mean of the log of this distribution $(\mu)$\\
\noindent Parameter \texttt{sigma} \> = standard deviation of the log of this distribution $(\sigma)$\\
\noindent Mean \> = $e^{\mu + \frac{\sigma^2}{2}}$\\
\noindent Variance \>= $e^{2\mu +\sigma^2}(e^{\sigma^2} - 1)$\\
\noindent Generator method \>= Convolution on N($\mu$, $\sigma$)\\
\end{tabbing}
\newpage
\paragraph{Chi-square distribution}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = $ \frac{0.5^{\frac{k}{2}}}{\Gamma(\frac{k}{2})} x^{\frac{k}{2} - 1} e^{-\frac{x}{2}}$ , $\Gamma$ is Gamma distribution\\
\noindent Possible generated $x$ values \> = $[0, \infty)$ \\
\noindent Function name \> = \texttt{chisquare(int dof)}\\
\noindent Parameter \texttt{dof} \> = Degree of freedom $(k)$\\
\noindent Mean \> = $k$\\
\noindent Variance \>= $2k$\\
\noindent Generator method \>= Convolution\\
\end{tabbing}
\paragraph{t-distribution}
\begin{tabbing}
\noindent Probability distribution function $f(t)$ \= = $ \frac{\Gamma(\frac{\nu+1}{2})}{\sqrt{\nu \pi} \Gamma(\frac{\nu}{2})} (1 + \frac{t^2}{\nu})^ {-\frac{\nu+1}{2}}$ , $\Gamma$ is Gamma distribution\\
\noindent Possible generated $t$ values \> = $(\infty, \infty)$ \\
\noindent Function name \> = \texttt{t(int dof)}\\
\noindent Parameter \texttt{dof} \> = Degree of freedom $(\nu)$\\
\noindent Mean \> = Too complex\\
\noindent Variance \>= Too complex\\
\noindent Generator method \>= Convolution\\
\end{tabbing}
\paragraph{F-distribution}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = $ \frac{1}{B(\frac{m}{2}, \frac{n}{2})} (\frac{m x}{m x +n})^{\frac{m}{2}} (1 - \frac{m x}{m x +n})^{\frac{n}{2}} x^{-1}$ , B is Beta distribution \\
\noindent Possible generated $x$ values \> = $[0, \infty)$ \\
\noindent Function name \> = \texttt{F(int m, int n)}\\
\noindent Parameter \texttt{m} \> = Degree of freedom for first chi-square distribution $(m)$\\
\noindent Parameter \texttt{n} \> = Degree of freedom for second chi-square distribution $(n)$\\
\noindent Mean \> = Too complex\\
\noindent Variance \>= Too complex\\
\noindent Generator method \>= Convolution\\
\end{tabbing}
\newpage
\paragraph{Erlang distribution}
\begin{tabbing}
\noindent Probability distribution function $f(x)$ \= = $ \frac{\lambda^k x^{k-1} e^{-\lambda x}}{(k - 1)!}$ \\
\noindent Possible generated $x$ values \> = $(0, \infty)$ \\
\noindent Function name \> = \texttt{erlang(int k, double rate)}\\
\noindent Parameter \texttt{k} \> = Shape parameter $(k)$\\
\noindent Parameter \texttt{rate} \> = Rate parameter $(\lambda)$\\
\noindent Mean \> = Too complex\\
\noindent Variance \>= Too complex\\
\noindent Generator method \>= Convolution\\
\end{tabbing}
\end{document}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -