User:Piotr mil/Hidden Power calculation
Type
Let us consider an example Pokémon, like Pikachu with this set of IVs:
|
Hit Points | Attack | Defense | Speed | Sp. Attack | Sp. Defense |
|---|---|---|---|---|---|---|
| 30 | 31 | 31 | 31 | 30 | 31 |
Hidden Power of a Pokémon with given IVs is represented by a number, calculated with this formula:
HP(type)=Floor[(a+2b+4c+8d+16e+32f)*15/63]
where a,b,c,d,e,f are calculated in this way:
- a=1 if the Individual Value of HP is odd. If not, a=0
- b=1 if the Individual Value of Attack is odd. If not, b=0
- c=1 if the Individual Value of Defense is odd. If not, c=0
- d=1 if the Individual Value of Speed is odd. If not, d=0
- e=1 if the Individual Value of Special Attack is odd. If not, e=0
- f=1 if the Individual Value of Special Defense is odd. If not, f=0
Which simply means that every element of the sum in the brace is the reminder of division of corresponding IV and 2, multiplied by appropriate power of 2 (20 in case of a and 25 in case of f). The sum may range from 0 (when all IVs are even) to 63 (when all IVs are odd), inclusively. It is worth mentioning that the computed sum may be easily calculated by putting its variables a,b,c,d,e,f together in reverse order and interpreting this as a number in the binary system, which then needs to be reverted to decimal system:
fedcba(2) = 32f+16e+8d+4c+2b+a (10)
The summed value is then multiplied by 15 and divided by 63, to be sure that the number representing Hidden Power Type will range form 0 to 15, inclusively (16 values in total). The calculated number is then rounded down (floor[]), which simply means that only integral part of the calculated number is considered.
The resulting number will correspond to a type; utilize the table below.
| Number | Type |
|---|---|
| 0 | Fighting |
| 1 | Flying |
| 2 | Poison |
| 3 | Ground |
| 4 | Rock |
| 5 | Bug |
| 6 | Ghost |
| 7 | Steel |
| 8 | Fire |
| 9 | Water |
| 10 | Grass |
| 11 | Electric |
| 12 | Psychic |
| 13 | Ice |
| 14 | Dragon |
| 15 | Dark |
In our example, we get:
|
Hit Points | Attack | Defense | Speed | Sp. Attack | Sp. Defense |
|---|---|---|---|---|---|---|
| 30 0 |
31 1 |
31 1 |
31 1 |
30 0 |
31 1 |
HP Type = Floor[(0 + 2 + 4 + 8 + 0 + 32)*15/63] = Floor [46*15/63] = Floor[10.952] = 10, which means that our
Pikachu has a grass-type Hidden Power.
Damage
Damage of the Hidden Power is calculated in a very same manner, using the following formula:
HP Power = Floor[((u+2v+4w+8x+16y+32z)*40/63)+30]
- u=1 if the Individual Value of HP divided by 4 has a remainder of 2 or 3. If not, u=0.
- v=1 if the Individual Value of Attack divided by 4 has a remainder of 2 or 3. If not, v=0.
- w=1 if the Individual Value of Defense divided by 4 has a remainder of 2 or 3. If not, w=0.
- x=1 if the Individual Value of Speed divided by 4 has a remainder of 2 or 3. If not, x=0.
- y=1 if the Individual Value of Special Attack divided by 4 has a remainder of 2 or 3. If not, y=0.
- z=1 if the Individual Value of Special Defense divided by 4 has a remainder of 2 or 3. If not, z=0.
Like before, the sum may range from 0 to 63, inclusively. The calculated number is then multiplied by 40 and divided by 63 to make sure that the fraction will not exceed 40. Then, the number is increased by 30 and rounded down, making Hidden Power's power a number ranging from 30 to 70, inclusively.
In our example, we get:
|
Hit Points | Attack | Defense | Speed | Sp. Attack | Sp. Defense |
|---|---|---|---|---|---|---|
| 30 1 |
31 1 |
31 1 |
31 1 |
30 1 |
31 1 |
HP Type = Floor[((1 + 2 + 4 + 8 + 16 + 32)*40/63)+30] = Floor [(63*40/63)+30] = Floor[70] = 70, which means that our Pikachu's Hidden Power's power is 70
|
Hit Points | Attack | Defense | Speed | Sp. Attack | Sp. Defense |
|---|---|---|---|---|---|---|
| 30 | 31 | 31 | 31 | 30 | 31 |
| Hidden Power: | Type: Grass |
Power: 70 |
Number of possible Hidden Powers
As there are 6 IVs, ranging from 0 to 31 (32 in total), the number of different possible Hidden Powers should be 326=230, which is more than billion possibilities. But let us consider two Pokémon with one different IV:
|
Hit Points | Attack | Defense | Speed | Sp. Attack | Sp. Defense |
|---|---|---|---|---|---|---|
| 30 | 31 | 31 | 31 | 30 | 31 |
and
|
Hit Points | Attack | Defense | Speed | Sp. Attack | Sp. Defense |
|---|---|---|---|---|---|---|
| 26 | 31 | 31 | 31 | 30 | 31 |
As we see, both 26 and 30 are dividable by 2 and give the remainder of 2 when divided by 4. So, in both cases the algorithms will interpret the IVs of those Pokémon in the same way, returning Grass-type Hidden Power with 70 power. In fact, there are only four possibilities of IV:
- IV that is not even and does not give the reminder of 2 or 3 while dividing by 4,
- IV that is even and gives the reminder of 2 or 3 while dividing by 4,
- IV that is not even and gives the reminder of 2 or 3 while dividing by 4,
- IV that is even and does not give the reminder of 2 or 3 while dividing by 4,
It means that for the mentioned algorithms an IV of 30 is treated in the same way like IVs of 2,6,10,14,18,22 and 26 (8 in total). As we see, there are 8 IVs in every of four categories, giving us 32 in total. Conclusively, the real number of possible Hidden Powers is 46=212=4096. This number, however is far too large, as the real number of possible variations of Hidden power is simply 16*41=656, as Hidden Power exists in 16 types and has 41 different powers. The huge difference between 656 and 4096 is explained by the function floor[], which reduces many different numbers to one.
- No categories associated with this article
