Original Post — Direct link

TL/DR:

Each reset increases the maximum number of perks you can get in either the third or fourth column like so:

Resets Max Perks in Left Max Perks in Right
0 1 1
1 2 1
2 2 2
3 3 2
4 3 3

After 4 resets to maximize your potential perk drops, your odds of getting a weapon with X / Y number of perks in the left / right columns is as follows:

Odds Table: [Unique] Perk Column Combos - After 4 Resets

Resets = 4 R Perks > > > 1 2 3
L Perks v v v L / R % 40% 30% 30%
1 40% 16% 12% 12%
2 40% 16% 12% 12%
3 20% 8% 6% 6%

Help reading this:

  • The first column / row counts the number of perks in the left / right columns, respectively.
  • The second column / row shows the odds of getting that number of perks in the left / right columns, respectively.
  • Example: After 4 resets, you have a 6% chance of getting a weapon with EXACTLY 3 perks in BOTH the left and right columns. You have an 8% chance of getting a weapon with EXACTLY 3 perks in the LEFT column and 1 perk in the RIGHT column.

This next table sums the odds of the table above it, and shows your chance of getting a weapon drop with AT LEAST that number of perks in each column:

Odds Table: [Cumulative] Perk Column Combos - After 4 Resets

Resets = 4 R Perks > > > 1 2 3
L Perks v v v L / R % 40% 30% 30%
1 40% 100% 60% 30%
2 40% 60% 36% 18%
3 20% 20% 12% 6%

Help reading this:

  • Example: After 4 resets, you have a 36% chance of getting a weapon with AT LEAST 2 perks in BOTH the left and right columns. You have an 18% chance of getting a weapon with AT LEAST 2 perks in the LEFT column and 3 perks in the RIGHT column.

Full Post:

This week's TWAB had an informative note on the formulas Bungie uses to determine the number of perks rolled in the left and right columns of Crucible playlist weapons specifically, saying the following:

How do the extra perks on ritual rank resets actually work? Is there a cap to the benefit? 

We have a formula that determines the maximum number of alternative perks based on the number of resets. For example, here are the formulae for Valor: 

--- Left column: 1+(CLAMP((valor_reset_count+1)/2,0,(10*rand/2)%3)) 

--- Right column: 1+CLAMP((valor_reset_count)/2,0,(10*rand/3)%3) 

We can use this information to fully extrapolate what the odds are of getting certain numbers of perks to drop in each column, for each number of resets we've done. Bungie specifies that this is for Valor resets specifically, so we can't assume that this applies the exact same way to Vanguard and Gambit, though the core principles of how they do this are probably the same. The rest of this post will be VERY math-heavy to demonstrate how this works, just FYI.

This formula uses a few important features:

  • CLAMP:
    • This is a term that means you determine whether a given value [x] is between your MIN and MAX of [y] and [z]. If [x] is less than your MIN of [y], it returns [y]. If [x] is greater than your MAX of [z] it returns [z]. Otherwise, it returns your value [x].
    • The structure of the function is CLAMP([x], [y], [z]).
    • This means we know Bungie is assessing your Valor Reset Count in the CLAMP function, and determining whether it falls between a constant MIN of zero, or a variable MAX that's made from an RNG function.
  • rand:
    • This is the RNG function. It just returns a random decimal number between 0 and 1, which is then impacted by the multipliers and divisors in the formulas.
  • %:
    • The percentage sign is extremely important to our odds tables. In the code here, it returns the REMAINDER (also known as the MODULUS or MOD for short) after you divide [a] by [b].
    • For example if you divide 7 by 3, you get 2.333... (repeating of course), but you can also describe this as 2 and 1/3rd, or 2 with 1 "remaining". It's that "remaining" amount that MOD returns as an integer, so the MOD for 7 / 3 = 1.
    • When you divide a number by a divisible number, MOD returns zero. For example, the MOD for 3 / 3, or 6 / 3, or 9 / 3, all = 0, because there's no amount "remaining" after the division.

With this information, we can start filling out our odds tables.

First, we can make a table that gives us what I'll call the CLAMP function "input" for now, which is taking the number of playlist resets we've had and applying it to the math in each respective formula:

Table: CLAMP Function Input

Resets Left Col. Formula: ([x]+1) / 2 Right Col. Formula: [x] / 2
0 0.5 0.0
1 1.0 0.5
2 1.5 1.0
3 2.0 1.5
4 2.5 2.0

Remember, the CLAMP function is assessing this "input" against a MIN of 0 and an RNG MAX. Since the "input" is fixed based on our reset count, you can actually think of this as assessing whether the RNG MAX is above or below the "input". If the RNG MAX is below the "input", then the RNG MAX is returned from the CLAMP function. Otherwise, the "input" is returned from the function.

The value returned from CLAMP has 1 added to it, and that's the resulting number of perks you could get in that column. Except that this will definitely return decimals, and we can't have half a perk. Therefore a very important assumption is made: The resulting number from the full formula is rounded down to the nearest integer. This means if the formulas return a 1.9 for the left column and a 2.1 for the right column, you'll have a weapon with 1 perk on the left and 2 perks on the right.

This assumption does make the probability math easier, as we're now calculating a range of potential values that are enough to get our end result numbers to cross specific integer thresholds.

The next step is to calculate the RNG distributions from the MAX function. The functions between the left and right columns are different, so we'll need to look at each. Looking at the left function first (([x] + 1) / 2) we can see with a minimum [x] value of 0 we get 0, and with a maximum [x] value of 1 we get 5. Therefore this part of the function returns a random distribution between 0 and 5. The MOD here divides that result by 3. That's an important choice, because that means that MOD values of 0 to 2 are far more likely to occur that MOD values of 2 to 3. You can see this in the table of results below:

Table: Left Column RNG MAX Function Outputs

RNG Values Distribution Values MOD values
0.0 to 0.1 0.0 to 0.5 0.0 to 0.5
0.1 to 0.2 0.5 to 1.0 0.5 to 1.0
0.2 to 0.3 1.0 to 1.5 1.0 to 1.5
0.3 to 0.4 1.5 to 2.0 1.5 to 2.0
0.4 to 0.5 2.0 to 2.5 2.0 to 2.5
0.5 to 0.6 2.5 to 3.0 2.5 to 2.999... (loops back to 0)
0.6 to 0.7 3.0 to 3.5 0.0 to 0.5
0.7 to 0.8 3.5 to 4.0 0.5 to 1.0
0.8 to 0.9 4.0 to 4.5 1.0 to 1.5
0.9 to 1.0 4.5 to 5.0 1.5 to 2.0

So for this range of possibilities, the MOD value that will ultimately be compared to out "input" value does not itself have an equal distribution of possibilities. This is where the weighted probability for weapon perk drops is actually created.

Lets apply this to an example. Say we have completed 1 reset. Our "input" for the Left column formula from our "CLAMP Function Input" table is therefore 1.0. In order to get 2 perks in the left column, we need the CLAMP function to return a value of 1, which means the RNG MAX must be larger than the "input" of 1.0 as well. Now all we need to do is sum up all the rows in the table above that will give us a MOD output of 1.0 or better, and we'll have those odds. Since the table is divided into 10 rows, each row has a 10% chance of occurring due to RNG. The number of rows with a potential MOD value of 1.0 or greater is 6. This means that 60% of the time, our RNG MAX will be larger than our "input" of 1.0, so CLAMP returns "1.0" and we add 1 to it, and get a resulting value of 2, for 2 perks in that column!

We can get the same table for the Right column formula. However, the distribution part of the RNG function is different, because it divides by 3 instead of 2. That means in order to show cleaner math, each row in the table below will represent ranges of 15% instead of 10%, save for the last row which covers the last 10% of possibilities:

Table: Right Column RNG MAX Function Outputs

RNG Values Distribution Values MOD values
0.00 to 0.15 0.0 to 0.5 0.0 to 0.5
0.15 to 0.30 0.5 to 1.0 0.5 to 1.0
0.30 to 0.45 1.0 to 1.5 1.0 to 1.5
0.45 to 0.60 1.5 to 2.0 1.5 to 2.0
0.60 to 0.75 2.0 to 2.5 2.0 to 2.5
0.75 to 0.90 2.5 to 3.0 2.5 to 2.999... (loops back to 0)
0.90 to 1.00 3.0 to 3.333... 0.0 to 0.333...

After doing more math for each number of resets, and applying this to the Right column function as well, we get the following results for the percentage chance of getting 1, 2, or 3 perks in the Left / Right columns, depending on your reset count:

Table: Perk Count Odds by Reset Count

Resets Left - 1 Perk Left - 2 Perks Left - 3 Perks Right - 1 Perk Right - 2 Perks Right - 3 Perks
0 100% 0% 0% 100% 0% 0%
1 40% 60% 0% 100% 0% 0%
2 40% 60% 0% 40% 60% 0%
3 40% 40% 20% 40% 60% 0%
4 40% 40% 20% 40% 30% 30%

Now that we finally have our odds at each reset of getting a set number of perks in each column, all we need to do is multiply them and get the array of possibilities for each reset. We'll start at 1 reset since we know we're only getting 1 perk in each column with 0 resets:

RESETS = 1

Odds Table: [Unique] Perk Column Combos - After 1 Reset

Resets = 1 R Perks > > > 1 2 3
L Perks v v v L / R % 100% 0% 0%
1 40% 40%
2 60% 60%
3 0%

Odds Table: [Cumulative] Perk Column Combos - After 1 Reset

Resets = 1 R Perks > > > 1 2 3
L Perks v v v L / R % 100% 0% 0%
1 40% 100%
2 60% 60%
3 0%

RESETS = 2

Odds Table: [Unique] Perk Column Combos - After 2 Resets

Resets = 2 R Perks > > > 1 2 3
L Perks v v v L / R % 40% 60% 0%
1 40% 16% 24%
2 60% 24% 36%
3 0%

Odds Table: [Cumulative] Perk Column Combos - After 2 Resets

Resets = 2 R Perks > > > 1 2 3
L Perks v v v L / R % 40% 60% 0%
1 40% 100% 60%
2 60% 60% 36%
3 0%

RESETS = 3

Odds Table: [Unique] Perk Column Combos - After 3 Resets

Resets = 3 R Perks > > > 1 2 3
L Perks v v v L / R % 40% 60% 0%
1 40% 16% 24%
2 40% 16% 24%
3 20% 8% 12%

Odds Table: [Cumulative] Perk Column Combos - After 3 Resets

Resets = 3 R Perks > > > 1 2 3
L Perks v v v L / R % 40% 60% 0%
1 40% 100% 60%
2 40% 60% 36%
3 20% 20% 12%

RESETS = 4

Odds Table: [Unique] Perk Column Combos - After 4 Resets

Resets = 4 R Perks > > > 1 2 3
L Perks v v v L / R % 40% 30% 30%
1 40% 16% 12% 12%
2 40% 16% 12% 12%
3 20% 8% 6% 6%

Odds Table: [Cumulative] Perk Column Combos - After 4 Resets

Resets = 4 R Perks > > > 1 2 3
L Perks v v v L / R % 40% 30% 30%
1 40% 100% 60% 30%
2 40% 60% 36% 18%
3 20% 20% 12% 6%
External link →
over 1 year ago - /u/dmg04 - Direct link

The numbers, Mason… what do they mean????