"[FINAL UPDATE] Cracking the Rocket CP formula -- For ALL levels 8 - 40 🚀"
#PokemonGO: This is a final update to the previous posts I made regarding this subject. Just to recap...A while ago, /u/dondon151 did the hardest part of this study by finally cracked the CP formula for Lv 40 players. As a TL;DR, this is the final formula that was derived:Standard CP formula: CP = floor(Attack * sqrt(Defense) * sqrt(HP) / 10)whereAttack = 4 * (baseAttack + 15) * rCPM * RankDefense = 2 * (baseDefense + 15) * rCPM * RankHP = (2 * floor(0.5 * baseHP) + 14) * rCPM * RankrCPM is a CP multiplier unique to all Team GO Rocket members at each Trainer level.Rank is 1 if a Grunt, 1.2 if a Leader, and 1.25 if Giovanni.HP is rounded down during battle, but not in the CP calculations.The Secret Multiplier: rCPMIn order to find rCPM, over 800 Shadow Pokemon were sampled at all levels, yielding the values below. Currently, these numbers are able to predict a Team GO Rocket's Shadow Pokemon's CP with a margin of error of just +/- 1 CP.The values have been rounded to 8 decimal places, to match with 8-decimal CPM values in GAME_MASTER. To note- it seems that calculated CP values are not affected after the 7th decimal place, so it's neither possible nor practical to exactly determine all 8 decimals Niantic used.LevelrCPMSamples+/- Error400.63251033890.00000016390.61524347420.00000167380.60464941370.00000091370.59329844410.00000066360.58234682260.000001350.56999541300.00000085340.55838496390.00000076330.54515082440.00000006320.53364227330.00000024310.5201017270.00000425300.51024425710.00000047290.49779712110.00000322280.48572731370.00000319270.47408842220.00000238260.46472315300.00000164250.4529347490.00000821240.4400225950.00001253230.42687328110.00000522220.4126005950.00001255210.39734765110.00000244200.37563168250.0000034190.36271786220.00000726180.3432961390.00000475170.32371894150.00001229160.30239137140.00001046150.28758883120.00000613140.26916977140.00000185130.25398148260.00000425120.23214737250.00000153110.22236579280.00000194100.19512744170.000009190.1699474980.0000247680.1402218490.00004341The raw data used to derive these numbers can be found on this spreadsheet.Interesting ObservationsA Shadow Pokemon, compared to a player's equivalent Powered Up to the Trainer's level:For level 8 players: Has 28% the Tankiness (HP * Def) and 150% the Attack powerFor level 40 players: Has 128% the Tankiness (HP * Def) and 320% the Attack powerAt level 31, Shadow Pokemon are about equally tanky as a player's Pokemon, but with 282% the Attack powerSo when it comes to picking your counters, focus of Pokemon with good resistances, high defensive stats, and low-energy Charged Attacks. (Which every hardcore Rocket battler already knows, but now it's proven with numbers.)Finding a TrendLong story short: we did not.Similar to the CPM values, rCPM appears to have kinks in its curve, which we observed to start at Lv 12 and Lv 22. /u/celandro and I did a linear regression on segments of the rCPM against level and got R^2 values of 0.999, suggesting a piece-wise linear relationship. However, as it turns out, it's impossible to draw a straight line that lies within the margin of error for all levels in each segment. The "line" essentially is a very slight zig-zag that averages out to a linear relation.We also could not find any direct relationship between CPM and rCPM, other than the fact that they both scale positively with level. rCPM at first appeared to be CPM^2... but not quite. Just like rCPM at first appeared to be linear... but not quite.For context, CP multiplier was determined a while ago to be a quadratic mean of the CPM for one level above and one below, with kinks set every 10 levels. We tried to see if anything similar was the case for rCPM... it was not.Data CollectionData was simply collected by capturing screenshots and videos of Team GO Rocket battles using accounts of various levels. Then a mathematical formula (in spreadsheet) is used to determine the possible upper and lower bounds that would yield the observed CP. The above formula was confirmed to be correct for all levels because a valid rCPM range could be found for all CPs observed.As it turns out, it doesn't matter that much how many samples were collected, but rather which samples were collected. Pokemon with higher CPs are more susceptible to errors simply because higher stats multiplied by a given error results in a higher error- which means the rCPM observed are often much more reliable in calculating lower CP Pokemon. On the other hand, sampling higher CP Pokemon resulted in tighter margins of error (such as and especially Cliff's Tyranitar); getting the values for Magikarp or Kakuna rarely had any impact on tightening our error margins.One thing to note is that lower level accounts tend to level up too quickly, making it difficult to collect large sample sizes on just one account. As a result, lower-level rCPMs here have much higher margins of error. However, since Rocket CPMs are really low as well, they still retain the small +/- 1 CP margin of error after calculations. In addition, at low levels, Shadow Pokemon get KO'ed in 1-2 Fast Attacks, so errors in breakpoint are rarely ever significant.Work is not completely done yet... and probably won't be anytime soon.Precisely speaking, this work will never be done until the model is able to predict CP at an error of +/- 0. Though that would probably take forever, and 95% of the data here was gathered by myself over the course of a month. It probably will not reach that level of precision until every level has sampled Cliff and a diverse pool of challenging Grunts. Or... if someone can figure out whether and how rCPM is derived from level and/or CPM.Practically speaking, however, +/- 1 CP will very rarely make-or-break a KO... so these values are ready to use.If you want to help contribute... see if you have any account whose level is at or close to any of the low sample, high-margin (>0.00001) rCPMs, and save some videos or screenshots (especially against Leaders or high CP Grunts). via /r/TheSilphRoad https://ift.tt/2Dx3yUL
"[FINAL UPDATE] Cracking the Rocket CP formula -- For ALL levels 8 - 40 🚀"
Reviewed by The Pokémonger
on
10:02
Rating:
No comments