Okay, here's a confusing one. I'm trying to work out a formula for a game. Specifically, it's for Splatoon 2's Special Saver ability, but knowledge of the game shouldn't matter for the maths.
You can have anywhere from 0 to 57 points (denoted P) in an ability, and typically the formula for how effective the ability will be is:
Max x ( 0.99 x P - ( 0.09 x P )^2 ) / 30
Where Max is the max effect an ability gives.
This formula basically makes the early points in abilities more valuable than later ones, for example with just P = 10 you get roughly 30% of Max, with P = 30 you get about 75% of Max. In particular, this formula is increasing, and its derivative is decreasing.
Most abilities will do something with the output of this formula to get a final result - for example with your run speed, it's added to your normal run speed. With Ink saver (spend less ammo), it's subtracted from the cost of each shot.
I've explained all this because, most likely, Special Saver also uses some kind of variation on this formula's output to get a final answer, but I just can't work out what it is. Here are some output values I've measured:
0 pts = 135
10 pts = ~162
15 pts = 180
20 pts = ~197
26 pts = ~217
30 pts = ~228
These are actually angles, out of a max possible of 270 (three quarter circle). Any with a tilde are from measuring it, and while that's not perfectly accurate they should be correct to within one degree, maybe two at most. The output for 57 is almost certainly going to be in the 260-270 range, and the output is almost certainly going to be an increasing function. These are all the facts I have. And I'm stuck. Anyone got any suggestions, or can see how to make this work? I know it's a long shot...
If needed, I could probably check some more values up to about 33 or 36, if someone thinks they've worked it out or could do with an extra data point, but due to how the ability system works I can't necessarily check any value (some numbers, like 5 and 11 are literally impossible to have, many others are very awkward but possible, like 25).
I figured at first it would just be a nice and simple, 135 max, add it on to 135 base, done. That's how it worked in Splatoon 1. WRONG. Doesn't even get close to most of these numbers. So I tried tweaking stuff to make the formula work, and it... doesn't. One notable thing is that the jump between 10 and 20 is bigger than between 0 and 10, meaning it isn't just using a multiple or something. So I've tried doing weird things like ignoring the max bit and dividing by (1-output), which gets close, but doesn't get me there.