As far as the stats things goes. I wrote a very quick little program to simulate it in different ways. Here are my results for a 10x10 room, with a 25% chance to get a block, through 10000 tests:
9 stones 1 time(s) = 0.01%
10 stones 2 time(s) = 0.02%
11 stones 5 time(s) = 0.05%
12 stones 3 time(s) = 0.03%
13 stones 9 time(s) = 0.09%
14 stones 27 time(s) = 0.27%
15 stones 38 time(s) = 0.38%
16 stones 89 time(s) = 0.89%
17 stones 156 time(s) = 1.56%
18 stones 252 time(s) = 2.52%
19 stones 347 time(s) = 3.47%
20 stones 539 time(s) = 5.39%
21 stones 623 time(s) = 6.23%
22 stones 751 time(s) = 7.51%
23 stones 795 time(s) = 7.95%
24 stones 973 time(s) = 9.73%
25 stones 957 time(s) = 9.57%
26 stones 870 time(s) = 8.7%
27 stones 826 time(s) = 8.26%
28 stones 677 time(s) = 6.77%
29 stones 574 time(s) = 5.74%
30 stones 419 time(s) = 4.19%
31 stones 337 time(s) = 3.37%
32 stones 265 time(s) = 2.65%
33 stones 180 time(s) = 1.8%
34 stones 111 time(s) = 1.11%
35 stones 59 time(s) = 0.59%
36 stones 49 time(s) = 0.49%
37 stones 28 time(s) = 0.28%
38 stones 19 time(s) = 0.19%
39 stones 7 time(s) = 0.07%
40 stones 9 time(s) = 0.09%
41 stones 1 time(s) = 0.01%
42 stones 2 time(s) = 0.02%
Even with 10,000,000 runs I never get 0 stones.
5 stones 1 time(s) = 1E-05%
6 stones 2 time(s) = 2E-05%
7 stones 10 time(s) = 0.0001%
8 stones 47 time(s) = 0.00047%
9 stones 208 time(s) = 0.00208%
10 stones 648 time(s) = 0.00648%
11 stones 1903 time(s) = 0.01903%
12 stones 5166 time(s) = 0.05166%
13 stones 12274 time(s) = 0.12274%
14 stones 26620 time(s) = 0.2662%
15 stones 52886 time(s) = 0.52886%
16 stones 96256 time(s) = 0.96256%
17 stones 162254 time(s) = 1.62254%
18 stones 253774 time(s) = 2.53774%
19 stones 369368 time(s) = 3.69368%
20 stones 500952 time(s) = 5.00952%
21 stones 636691 time(s) = 6.36691%
22 stones 760012 time(s) = 7.60012%
23 stones 859578 time(s) = 8.59578%
24 stones 914611 time(s) = 9.14611%
25 stones 918676 time(s) = 9.18676%
26 stones 879171 time(s) = 8.79171%
27 stones 797808 time(s) = 7.97808%
28 stones 689801 time(s) = 6.89801%
29 stones 568632 time(s) = 5.68632%
30 stones 448994 time(s) = 4.48994%
31 stones 338469 time(s) = 3.38469%
32 stones 245081 time(s) = 2.45081%
33 stones 170230 time(s) = 1.7023%
34 stones 113124 time(s) = 1.13124%
35 stones 72508 time(s) = 0.72508%
36 stones 44497 time(s) = 0.44497%
37 stones 26590 time(s) = 0.2659%
38 stones 15371 time(s) = 0.15371%
39 stones 8555 time(s) = 0.08555%
40 stones 4535 time(s) = 0.04535%
41 stones 2421 time(s) = 0.02421%
42 stones 1167 time(s) = 0.01167%
43 stones 571 time(s) = 0.00571%
44 stones 294 time(s) = 0.00294%
45 stones 146 time(s) = 0.00146%
46 stones 52 time(s) = 0.00052%
47 stones 28 time(s) = 0.00028%
48 stones 12 time(s) = 0.00012%
49 stones 2 time(s) = 2E-05%
50 stones 3 time(s) = 3E-05%
51 stones 1 time(s) = 1E-05%
If you want to mess with it yourself, download it here www.gumpstudio.com/MiningSimulator.zip. It has no error checking at all, so any non numbers will crash it. It requires .net framework 4.
*edit* my math was wrong. fixed up the % calculations
This is very interesting, and shows a nice bell curve if you plug it into a decent spreadsheet program.
What I'm wondering is: does it matter?
Currently, if you create a custom reaction with a 1 in 4 chance of something, you use:
[PRODUCT:(percent chance):(number of products):(item token):(subtype*):(material class):(material subtype)]
and write up:
[PRODUCT:25:1:WOOD:NO_SUBTYPE:PLANT_MAT:OAK:WOOD]
That's all fine and good, and established mod procedure.
Except that I lied to you. There is no "percent chance" in a reaction. That's more accurately summed up as "percent of object created". What that reaction above does is create one-fourth of an item, so that every fourth reaction will output that item.
I would expect mining to do the same thing. Every tile mined gets you one-fourth of a boulder, which manifests itself as soon as the total reaches 100%.
Maybe I'm wrong, and it is actually a drop chance. But as BradUffner's post shows, that's not a terrible solution, either. I guess we'll just have to wait until the next release to see.