I think I know how to figure out the average time for a miner to produce a block (ie, generate a compliant hash), but wanted to ask the community to be sure.
If you go to blockexplorer.com and get the current probability
http://blockexplorer.com/q/probability and invert this, it should be the average number of hashes required to produce a block. So at this moment the probability is:
0.0000000000000000762211067916254703114020685461582615971
Inverting it (ie, dividing into 1) gives
13119725520830032.0
Dividing this by the hashes/sec of any given miner should give you the number of seconds/block. For a btcfpga 27Ghash/sec this is:
13119725520830032.0 / 27e9 = 485915.76003074192
Dividing this by the number of secs in a day gives average days to produce a block
485915.76003074192 / (60*60*24) = 5.6240250003558092
So in a formula, it would be:
((1/probability)/minerHashesPerSec)/(secsPerDay) = daysPerBlock
Does this seem right?
Thanks