case classAliased(alias: IndexedSeq[Int], prob: IndexedSeq[Double]) extends Drv with Product with Serializable
A Drv using the Aliasing method [1]: a distribution is described
by a set of probabilities and aliases. In order to pick a value
j in distribution Pr(Y = j), j=1..n, we first pick a random
integer in the uniform distribution over 1..n. We then inspect
the probability table whose value represents a biased coin; the
random integer is returned with this probability, otherwise the
index in the alias table is chosen.
"It is a peculiar way to throw dice, but the results are
indistinguishable from the real thing." -Knuth (TAOCP Vol. 2;
3.4.1 p.121).
[1] Alastair J. Walker. 1977. An Efficient Method for Generating
Discrete Random Variables with General Distributions. ACM Trans.
Math. Softw. 3, 3 (September 1977), 253-256.
DOI=10.1145/355744.355749
http://doi.acm.org/10.1145/355744.355749
Linear Supertypes
Serializable, Serializable, Product, Equals, Drv, (Rng) ⇒ Int, AnyRef, Any
A Drv using the Aliasing method [1]: a distribution is described by a set of probabilities and aliases. In order to pick a value j in distribution Pr(Y = j), j=1..n, we first pick a random integer in the uniform distribution over 1..n. We then inspect the probability table whose value represents a biased coin; the random integer is returned with this probability, otherwise the index in the alias table is chosen.
"It is a peculiar way to throw dice, but the results are indistinguishable from the real thing." -Knuth (TAOCP Vol. 2; 3.4.1 p.121).
[1] Alastair J. Walker. 1977. An Efficient Method for Generating Discrete Random Variables with General Distributions. ACM Trans. Math. Softw. 3, 3 (September 1977), 253-256. DOI=10.1145/355744.355749 http://doi.acm.org/10.1145/355744.355749