Unbiased random number generator using a biased one
The events (p)(1-p) and (1-p)(p) are equiprobable. Taking them as 0 and 1 respectively and discarding the other two pairs of results you get an unbiased random generator. In code this is done as easy as: int UnbiasedRandom() { int x, y; do { x = BiasedRandom(); y = BiasedRandom(); } while (x == y); … Read more