Potential Big IV Calculation Improvement

I noticed a small pattern about 2 months ago and have finally figured it out. It can only be used by IV Calculators that take multiple levels into consideration. Let's take the following stat example:

10
12
14
15

Let's say that you entered 4 levels worth of stats and this is one of those columns. If you take the difference between each level, you would get 2 + 2 + 1 = 5. If you take the total number of hops, which would be 3, you get 5/3 or ~1.667. Now, we can actually figure out the minimum and maximum decimal positions that each stat could be. In order to make all the numbers work out correctly, the first number would have to be between 10.667 and 11. I'll show you like this:

Minimum
--------

10 2/3 + 5/3
12 1/3 + 5/3
14 0/3 + 5/3
15 2/3

It has to be at least 10 2/3 because otherwise it would not make it to that 14 stat.

Now, why is this important, you ask? Instead of IV range testing for a stat 10 to 11, it will now only test stat 10.667 to 11. That makes it much more accurate. The more levels you enter, the more accurate it gets:

10
11
12
12
13
14
14
15

A difference of 5 / 7 hops = 5/7. Thus the min would be

10 4/7
11 2/7
12 0/7
12 5/7
13 3/7
14 1/7
14 6/7
15 4/7

The max would be adding 1/7 to each of those numbers. I think this could end up giving you exact IV ranges in less than 10 levels, maybe even 5 if the numbers work out. I'll be trying to apply this in my next version, so hopefully it all works out.
 
However, I am not entirely sure if this will fit in because this makes a few assumptions.

#1. The increase per level has to be linear. If it is not, then this probably won't work.
#2. The calculations do Math.Floors, but that would automatically get rid of the decimal point. Thus, I'm not exactly sure how I can calculate a stat that ends up keeping its decimal portion.
 

cim

happiness is such hard work
is a Contributor Alumnusis a Smogon Media Contributor Alumnus
In before obligatory "omg use the code instead" here.

Exact ranges in 10 levels would be awesome. Good find!
 
It looks like I have to refine this a little bit more because Natures DO affect the outcome of this. However, hopefully I just have to multiply the increase by the nature's affect. Say the overall increase is 0.50. If the nature is positive, then really I have to start testing for 0.55 (0.5 * 1.1). If it is decrease, it would be 0.45 (.05 * 0.9). Though, this is only going to help if the stats "jump" from a main pattern. If it always goes up by 1 or 2, then it is impossible to limit anything.

I technically live in De Pere now, so we'll see! :)
 
However, I am not entirely sure if this will fit in because this makes a few assumptions.

#1. The increase per level has to be linear. If it is not, then this probably won't work.
#2. The calculations do Math.Floors, but that would automatically get rid of the decimal point. Thus, I'm not exactly sure how I can calculate a stat that ends up keeping its decimal portion.
1. It is positively linear.
2. At least it works for 4.2166666666666666... out of 6 stats. All stats with no nature effect will work, although it may not work for a stat-calculating lookup calc like yours. Since natures involve a premature Math.Ceiling, it probably won't work for stats which are affected by them.
 
Actually, the new v5.0 calculator uses both the IV and Stat formulas to narrow down the results. Thus, I can apply this new find. I think the stats getting increased/decreased can also work, so long as the linear number you are using to calculate is also multipled by 1.1 or 0.9. I haven't had the time to verify it yet, but I'm going to try putting it into the new v5.0 calc and see what happens.
 
Now that I've had time to look at this idea, I cannot find a way that you can use it in the calculator.

The problem is that you can only approximate the stat gain per level. If you could find the exact gain per level, then you would only need one level-up to find the exact IV. Since you can't do that, you're relying on approximations to narrow down the values, and that's hard to do quickly. (Believe me, I'm trying it to see how it will help my IV calculator.)

As it stands now, I'm finding it difficult to see how this can narrow down values more quickly than working through the Stat and IV formulas.
 
Your logic is flawed on this. For example, try Fractionalizing this set:

46
49
51
53
56
58
60
63
65

What are the possible fractional stats? (Don't look down until you have calculated them)

































































These are actual Pokémon stats where the Base+IV+EV/4 (rise per level) is 2.32! In one extreme case, Fractionalization predicts a value of 65.63-65.75 for the last stat, and the actual value is 65.32, which is off by more than 0.3, almost 2 1/2X the predicted range! I do know that the problem is with predicting the rise per level, and not with the Fractionalization itself. With a known rise per level, Fractionalization works perfectly. Then again, with a known rise per level, perfect IV's are just a stat formula away, with no need for Fractionalization. Translation: Fractionalization is only helpful when you don't need it.
 
The change is 2 3/8. The first stat would have to be 46 5/8:

46 5/8
49 0/8
51 3/8
53 6/8
56 1/8
58 4/8
60 7/8
63 2/8
65 5/8

I would predict 68 for the next stat.

After reading, it is pretty much the same thing. I would predict 65.625 to 6.75 for the stat. It seems you round up, which is bad.

Your logic is flawed on this. For example, try Fractionalizing this set:

46
49
51
53
56
58
60
63
65

What are the possible fractional stats? (Don't look down until you have calculated them)

































































These are actual Pokémon stats where the Base+IV+EV/4 (rise per level) is 2.32! In one extreme case, Fractionalization predicts a value of 65.63-65.75 for the last stat, and the actual value is 65.32, which is off by more than 0.3, almost 2 1/2X the predicted range! I do know that the problem is with predicting the rise per level, and not with the Fractionalization itself. With a known rise per level, Fractionalization works perfectly. Then again, with a known rise per level, perfect IV's are just a stat formula away, with no need for Fractionalization. Translation: Fractionalization is only helpful when you don't need it.
 
The change is 2 3/8. The first stat would have to be 46 5/8:

46 5/8
49 0/8
51 3/8
53 6/8
56 1/8
58 4/8
60 7/8
63 2/8
65 5/8

I would predict 68 for the next stat
Wrong!!! These are the stats for a Hardy Lucario's Attack at levels 18-26. The IV is 12. The EV is 0. Try calculating the stats for those parameters (both fractional and MathFloor [actual])
 
The IVs that work for 25 to 26 are bigger than the IVs that work for 25.5 to 25.7. Each level will further decrease the range.

Now that I've had time to look at this idea, I cannot find a way that you can use it in the calculator.

The problem is that you can only approximate the stat gain per level. If you could find the exact gain per level, then you would only need one level-up to find the exact IV. Since you can't do that, you're relying on approximations to narrow down the values, and that's hard to do quickly. (Believe me, I'm trying it to see how it will help my IV calculator.)

As it stands now, I'm finding it difficult to see how this can narrow down values more quickly than working through the Stat and IV formulas.
 

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top