Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
What is _wrong_ with Python? a.k.a. PoR probabilities
#16
Further note about the above script: it tells us the probability of getting [/i]precisely[/i] n successes for each possible die pool and target number in a single roll of the pool, not the probability of at least n successes. If the pool is {2d4}, there is a 50% chance of getting 1 success when TN=2, but there is a 75% chance of a success. A roll with 2 successes still has a success. So to calculate the probability of at least n successes (which is what is normally wanted -- I can't think of any dice pool systems that want an exact number of successes. [Well, one. But that uses a roll m keep n system, which this isn't. Also it's an additive pool system, not comparative (PoR is a hybrid) so it's not the number of successes, but the degree of success that mattered in a magical subsystem for Blood Magic, if I recall. To cast a spell, you want n dice to add to a target number, but if the sum exceeded some other number above that, you'd start accumulating dark energy, so you wanted to roll well but not too well lest bad stuff starts happening. But that's neither here nor there. We want at least n successes]) in a single roll, add the probabilities of all successes >= the desired number.

But what about situations that allow multiple attempts to achieve n successes? As a reminder, as long as at least one success is rolled, reroll the pool minus any dice that rolled 1 until the requisite number of successes is met (not matched). Simple. Multiply the probability of a single-roll win with the probability of n-1 successes times the reroll of every subset of the pool, times the probability of n-2 successes with all subsets, etc. Easy.

If you read sarcasm into that last statement, you shouldn't have. It really is easy. Tedious, definitely, but easy. One just needs to be careful and maybe a little bit clever. At least, I think using a binary matrix to create the subpools is a little clever. (Not that I've coded anything yet, but I've an idea of how to implement things.)

Small binary matrix:
Code:
1 1 1
1 1 0
1 0 1
0 1 1
1 0 0
0 1 0
0 0 1
Each row tells you which dice of the pool is used in the subpool; first row sends all dice, last row sends only the last die. The careful part is that not every subpool is equally likely. Also, if you're sending two dice as a subpool to be checked, there's no way the current roll could have had three successes.
Getting me free admission into gaming conventions for a decade
Reply


Messages In This Thread
RE: What is _wrong_ with Python? - by Kersus - 10-31-2016, 01:00 PM
RE: What is _wrong_ with Python? - by Kersus - 11-03-2016, 03:56 PM
RE: What is _wrong_ with Python? a.k.a. PoR probabilities - by Oedipussy Rex - 12-02-2016, 02:15 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)