Misunderstood Universe
Someone complained that they had completed about 30 sites and had gotten no escalations, as compared to a previous day where they had gotten a bunch of escalations. One response to this is "yes, and?" as the universe is under no obligation to make the dice behave as you feel they should, where the escalations "ought to" occur at some fairly constant rate.†
These sites in EVE Online are claimed to have a 5% chance of escalating, and these escalations are desirable because loot. With a monte carlo simulation we can get an idea of what one might expect from 30 attempts with some odds of a (maybe‡) big payout. The code checks for escalations (5% odds) in 30 sites, and tallies the number of escalations found in each 30-site run into an array. Then the check-30 loop is repeated a huge number of times, allowing us to answer such questions as "given a million 30-site runs, what are the odds of getting zero escalations? (You can sometimes do this with probabilities maths, but it's easier for me to write a program, somewhat wasteful of CPU, but so these things go.)
(block nil (setq *random-state* (make-random-state t)) (return))
(deftype oddst () '(float 0.0 1.0))
(defconstant +trials+ 1000000)
(defun tribulations (&key nsites odds trials)
(declare (fixnum nsites) (oddst odds) (integer trials))
(let ((counts (make-array nsites
:element-type 'fixnum
:initial-element 0)))
(loop with bigloot repeat trials do
(setf bigloot 0)
(loop repeat nsites do
(when (< (random 1.0) odds)
(incf bigloot)))
(incf (aref counts bigloot)))
counts))
(defun percent (n m)
(coerce (* (/ n m) 100) 'float))
(let ((result (tribulations :nsites 30 :odds 0.05 :trials +trials+)))
(loop with zerorun = 0 and maxrun = 3
for i upfrom 0
for c across result do
(format t "~&~2d ~6d ~5,2f~&" i c (percent c +trials+))
(when (zerop c)
(when (> (incf zerorun) maxrun)
(loop-finish)))))
For a random run of a million trials, there is around a 20% chance of zero escalations in 30 sites. Too bad, so sad. The "good luck" from the prior day probably fell into the less likely but not impossible three escalations in 30 sites. Humans have fond memories of rare results.
0 214893 21.49
1 338924 33.89
2 258534 25.85
3 126935 12.69
4 45168 4.52
5 12190 1.22
6 2784 0.28
7 494 0.05
8 70 0.01
9 8 0.00
10 0 0.00
11 0 0.00
12 0 0.00
13 0 0.00
Other games use what are called "rubber band odds" to make the RNG behave more like it "ought to", which is to say the rolls are fiddled with to remove spells of too much or too little loot. Straight roll against a not buggy RNG? There will be dry spells.
Wanting the universe to behave as it ought to is not unique to gamers. Some Einstein chap really did not want dice involved, mainly for philosophical reasons.
—
† If the escalations were more common, that would be normal, and they would doubtless find some some other statistical feature to complain about.
‡ Maybe in that some escalations have no significant loot, or maybe the escalation is in one of those "nope" systems like Leran that too often has an annoying local Loki pilot.