Lifepot Rolling


#1

As many of you know, DECA banned gambling several weeks ago. However, what if I told you that DECA was forcing you to gamble 19 life pots every time you leveled-up a character? With that, I present

The Probability of Pot Rolling

Perhaps that introduction was a little sensationalist. Allow me to explain my reasoning in detail.

A Crash Course in Rolling Mechanics

Not all characters are created equal. Every time you level up, your character can gain anywhere between 20 and 30 hit-points. If you want an 8/8 character, max HP, you can do one of two things

  1. Reroll (this entails killing bad characters) over and over again until you get a character that gained 30 HP points for all 19 level-ups. This automatically makes your character max life. Unfortunately, the odds of this is (1/11)^19. Read that as 1, divided by 11. Now multiple 1/11 by itself 19 times. How low is 1/(11^19)? Well, if you rolled a character to level 20 every second, and you rolled non-stop, it would still take you 2 million million years on average to do this.

  2. Have some sense. You get a roll (probably not going to be maxed fresh) and cover the difference with lifepots. If I rolled +25 on every level up (which is standard), I am (30-25)*19 = 95 hitpoints short. Each lifepot gives 5 hp. Thus, I can drink 19 lifepots and max life that way.

You can guess that most people opt for 2). However, what if I only get +24 on each level? The difference is remarkable. Now I need (30-24)*19 = 114 hp points. That’s 23 lifepots–4 more than the average! If I got this bad a roll, I would need an extra unbounded hp ring just to get the same stats as an average roll!

So you can guess that rolling matters quite a bit. However, what makes a good roll? How realistic is that “I want a +30 roll!”?

Crunching the Numbers

I rolled a character 100,000 times–on a computer program, of course! (Come on, how much time do you think I have?) I used Python 3.6 with the help of LordDscale; the code is down below. Note that you can input however many rolls you wish to simulate!

As for results, I got the following:

Differential of -12: 1. The probability of this is 0.001%. The probability of a worse roll is 0.0%.
Differential of -11: 9. The probability of this is 0.009%. The probability of a worse roll is 0.001%.
Differential of -10: 29. The probability of this is 0.029%. The probability of a worse roll is 0.01%.
Differential of -9: 94. The probability of this is 0.094%. The probability of a worse roll is 0.039%.
Differential of -8: 349. The probability of this is 0.349%. The probability of a worse roll is 0.133%.
Differential of -7: 833. The probability of this is 0.833%. The probability of a worse roll is 0.482%.
Differential of -6: 1882. The probability of this is 1.882%. The probability of a worse roll is 1.315%.
Differential of -5: 3761. The probability of this is 3.761%. The probability of a worse roll is 3.197%.
Differential of -4: 6337. The probability of this is 6.337%. The probability of a worse roll is 6.958%.
Differential of -3: 9238. The probability of this is 9.238%. The probability of a worse roll is 13.295%.
Differential of -2: 12157. The probability of this is 12.157%. The probability of a worse roll is 22.533%.
Differential of -1: 14055. The probability of this is 14.055%. The probability of a worse roll is 34.69%.
Differential of 0: 14124. The probability of this is 14.124%. The probability of a worse roll is 48.745%.
Differential of 1: 12571. The probability of this is 12.571%. The probability of a worse roll is 62.869%.
Differential of 2: 9827. The probability of this is 9.827%. The probability of a worse roll is 75.44%.
Differential of 3: 6797. The probability of this is 6.797%. The probability of a worse roll is 85.267%.
Differential of 4: 4140. The probability of this is 4.14%. The probability of a worse roll is 92.064%.
Differential of 5: 2167. The probability of this is 2.167%. The probability of a worse roll is 96.204%.
Differential of 6: 1008. The probability of this is 1.008%. The probability of a worse roll is 98.371%.
Differential of 7: 426. The probability of this is 0.426%. The probability of a worse roll is 99.379%.
Differential of 8: 136. The probability of this is 0.136%. The probability of a worse roll is 99.805%.
Differential of 9: 45. The probability of this is 0.045%. The probability of a worse roll is 99.941%.
Differential of 10: 11. The probability of this is 0.011%. The probability of a worse roll is 99.986%.
Differential of 11: 3. The probability of this is 0.003%. The probability of a worse roll is 99.997%.

On average, you will spend 19.40721 lifepots to max life.

You might be wondering why it costs more than 19 lifepots on average, if 19 lifepots should be standard. It has to do with the fact that lifepots can give less than 5 hp, but never more. Say you have 2 hitpoints to max. You only gain 2 more from the lifepot!

Data Analysis

Because of the reasons mentioned before, results are skewed left–that is, results tend to be worse more often than better. Interestingly, there is a 48.75% chance–almost half–that you won’t even roll average. And the chance of rolling above average is 37%.

Let’s say you want to save 4 lifepots or more on a roll. The chances of this are 100% - 92% = 8%. Think of it this way: I pick two whole numbers between 1 and 25 inclusive. Now guess one of my numbers.

You might notice that numbers near the middle are more frequent than the outer values. This has to do with something known as the bell curve; put another way, the average is most common on average.

So, What’s A Realistic Goal?

It really depends on how much time you have. Personally, I wouldn’t settle for a differential of less than 2 unless other stats are very good–chances are, I’ll get a better roll after 3 or 4 tries! I know people who have killed +17 hp rolls because it was “only” +3 lifepots.

Happy rolling! Let me know if you have any comments or suggestions.
–Perseus

P.S. So, unfortunately, I can’t attach a program to the post. Yay. I can, however, attach a picture

of my code. For the more diligent (or desperate) among you adventurers, you can copy the code and try it yourself. Note that anything red is unnecessary; it only contains my notes. Good luck!


#2

Cool.

You could copy pasta the code here and hide it using the “hide details” feature. Much easier for people to use it that way.


#3

What does this code thing do?


#4

Lemme just put this here:

Really, your “realistic goal” should involve a comparison: how quickly can you roll a new character with a better HP roll, versus how quickly can you farm up the life pots to make up the difference? If you’re an endgame “tombz all day erry day” sort of player, then there’s no point in wasting any time rolling at all; if you are a much newer player and still farming Sprite Worlds to merch all that dex into def, then a good roll can save you a ton of time. There’s no standard answer here, as all players are different.

Edit: I also note you stopped at 100,000 rolls in your Monte Carlo simulation. Note that the bell curve you generated isn’t perfectly symmetrical due to this—the odds of getting a +1 roll should be exactly the same as the odds of getting a -1 roll. There are in fact 1119 different possibilities (that’s 61,159,090,448,414,546,291), so “only” 100k rolls barely scratches the surface.

Edit #2: Also, errors in your math: I crunched your data and I determined that this set of 100k sample rolls needs an average of 19.48142 life pots to max, not 19.40721.   [Never mind this, the discrepancy is explained below. OB]

However, a more fundamental problem here is that your data is not truly a representative sample of the 1119 possibilities. I see that of your 100k rolls, 48,745 of them are below ±0HP and only 37,131 of them are above ±0HP. Even though your numbers were generated randomly, your sample size is small enough to show signs of unevenness, and your end data suffers as a result. If you were to run this experiment again with 100k new samples, I’m sure your results would diverge from these.


#5

In response to edit 1: This, I can agree with. Python is unfortunately a bit slow. Thankfully, my program can run any number of simulations (within reason).

In response to edit 2: That’s strange, I checked the math twice and got the exact same answer as the program.

Lastly, I can justify that last claim. It should indeed be skewed towards the lower side. This is because lifepot calculation takes the floor (aka, round down) of the hitpoints. If my roll was +1, that counts as 0 lifepots. But if it’s -1, than it counts as -1 lifepots. This means all results are skewed lower, as opposed to being normal. If I ran my program again, the split would still be close to 48-37. Now, if I should the hitpoint rolls, they would be spread evenly. But taking the results and rounding down must also skew the results down.

Thank you for the comments!


#6

I calculated every life pot that your 100k characters would need, and determined an average of 19.48 life pots per character:

Maybe there’s a typo in my spreadsheet.

Still, the statistical noise in your raw data (column B) is going to skew your final results (as I’ve already pointed out). You have nearly as many -1hp rolls as you do ±0hp rolls, and nearly as many -2hp rolls as you do +1hp rolls. This isn’t showing the symmetry that we would expect to see.

Again, look at the “Direct Calculation” section of the link I provided earlier, and I show how you can calculate the exact bell curve data for all 1119 possibilities, including rolls from -95hp to +95hp (inclusive).


#7

Sounds interesting.

Just letting you know you could add the code in preformatted text. Made using grave accents, or this button


#8

Ah, I see the issue now. The HP roll isn’t -12: the number of lifepots under average is -12!

That is -12 lifepots below average is -56 to -60 hp below average. I hope that clears up everything!


#9

Ah, makes sense—you lump HP rolls from ±0hp to +4hp as “0”, +5hp to +9hp as “1”, -5hp to -1hp as “-1” and so on. That also explains why your “-1” bin is larger than your “+1” bin, as the “-1” bin includes rolls closer to the midline than the “+1” bin does.


#10

Amazing job. I really like this. And it’s obvious how much work you put into this.


#11

Great post! That was actually very interesting to read, thanks for this!


#12

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.