1. osu! forums
  2. osu!
  3. Development

posted
So I decided to finish what I started and abandoned a few months ago. A few months ago, I strove to make acc pp more accurately reflect how statistically accurate you are. After a discussion with Full Tablet https://osu.ppy.sh/community/forums/topics/727540?start=6741333, I made some major changes to the algorithm. I used Full Tablet's idea of using the quantile formula of the normal distribution (or is it quantile of the normal distribution formula, idk how to grammar) to relate accuracy, OD, and number of objects. I then made regressions of its partial derivatives to get an idea of how they were related and then made a regression function with inputs of all three variables (it sounds complicated when it's really not). It turned out like this:

key:
OD = overall difficulty
n = number of circles in map (does not include sliders and spinners)
acc = accuracy on map (with respect to circles not total objects)

s = 2.06199*n^(-0.0468658)*(1+0.196922e^(-0.0103434*n)*(1.01937-acc)^(0.339792)*(79.5-6*OD)
r^2 = 99.251%

Keeping to the original, we then get
acc pp = 1.6988647*1.52163^(13.25-s/6)

Edit 1: It's still a work in progress, the OD and accuracy parts are fine, the number of circles part is the problem.
posted
Here is the command line program I mentioned previously, that calculates "s" according to acc%, number of notes, and timing windows, using the previously mentioned formulas and the secant method.
(It doesn't check for invalid input. For extremely low acc values (below %1), the algorithm is not numerically stable, but at that point the acc pp could just be set to 0)
https://b.catgirlsare.sexy/anpY.7z


(Ask me if you want the source code, written in C and Wolfram, which needs Mathematica installed to compile)
posted
I would like that code to experiment with.
Thank you
Please sign in to reply.