I won't post in the bitHopper thread because it's too busy, so with your permission I'll reply here to a comment there:

I assume you are giving each pool a table of random block find times (randomly generate a high-precision round percentile 0% to 100%, turn that percentile into number of individual hashes required using correct math, turn that into times using hashrate), and then are simulating the switching and share percentages earned.

No. I am using

Meni's formula.

You can't use anything that will provide a uniform random distribution. It has to be at least a binomially distributed random, and at best a time-distributed fractional poisson distribution.

I'm using the built in poisson distribution randomiser built into R with some jiggery pokery to make it a poisson time-distributed random(really share based) instead of the standard poisson distribution

http://stat.ethz.ch/R-manual/R-patched/library/stats/html/Poisson.html. Ryouiki has a bespoke poisson randomiser built on mersenne twister as a random seeder.

So there's a bunch of examples to get you going!

I don't know where you heard the term "poisson time-distributed random", but you should use standard terminology:

A process of independent random events happening at a given rate is called a

**Poisson process**.

The distribution of the number of events in a given time interval in a Poisson process is called the

**Poisson distribution**.

The distribution of the time between any point and the next event in a Poisson process is called the

**Exponential distribution**.

The discrete version of the exponential distribution, which gives the number of shares in a round, is called the

**Geometric distribution**.

Now, the procedure I outline is the correct way to obtain an exponentially distributed random variable (the active ingredient is taking a logarithm). I don't know how bb did his simulation so can't comment whether this is what he needs.