Brute force a formula based on numbers and the result? I have thought of a very funny thing. In World of Warcraft, all weapons have some Damage Per Second variable specified. I want to know how they calculate that result, based on the result and some numbers. Here is what can affect it:
Speed: 1.90 //It swings every 1.9 seconds
Damage: 36 - 68 //Hits between 36 and 68 damage
Damage Per Second: 27.59 //This is what I want to calculate

There are some key things to consider when entering these numbers into the "calculator" I am looking for. They could be calculating this from "swings per minute" (speed/60) and the average damage ((36+68)/2).
Have you heard or seen these brute forcers before? It would basically go over all numbers and find a formula, which will always equal the result I input (27.59 in this case). Or at least approximately that number, because of floats et cetera.
Thanks for reading. Hopefully this gave you something to think about, because I think it is pretty cool.
 A: I would suggest to do your brute force a bit more methodical by minimizing the cost of appropriate functions over speed $s$ and damage $d_{min}$ and $d_{max}$ towards the given dps value $dps$.
I would start with linear combinations of different functions $f_1(s,d_{min},d_{max})$ to $f_n(s,d_{min},d_{max})$ .
Then you want to find the paramers $a_1,\cdots,a_n$ s.t.
$$
\sum_{i=1}^n a_i f_i(s_j,d_{j,min},d_{j,max}) = (dps)_j
$$
for all indices $j=1,\cdots,m$ (that is over all your given data rows).
We can rewrite that in matrix form as
$$
\begin{pmatrix}
f_1(s_1,d_{1,min},d_{1,max}) & \cdots & f_N(s_1,d_{1,min},d_{1,max})\\
\vdots & \ddots & \vdots\\
f_1(s_m,d_{m,min},d_{m,max}) & \cdots & f_N(s_m,d_{m,min},d_{m,max})
\end{pmatrix}
\begin{pmatrix}
a_1\\\vdots\\ a_N
\end{pmatrix}
=
\begin{pmatrix}
(dps)_1\\\vdots\\ (dps)_m
\end{pmatrix}
$$
Solving this in the least squares sense will lead you to the optimal parameters $a_1,\cdots,a_N$ for the given functions. But more importantly, it also allows you to compute
$$
||\begin{pmatrix}
f_1(s_1,d_{1,min},d_{1,max}) & \cdots & f_N(s_1,d_{1,min},d_{1,max})\\
\vdots & \ddots & \vdots\\
f_1(s_m,d_{m,min},d_{m,max}) & \cdots & f_N(s_m,d_{m,min},d_{m,max})
\end{pmatrix}
\begin{pmatrix}
a_1\\\vdots\\ a_N
\end{pmatrix}
-
\begin{pmatrix}
(dps)_1\\\vdots\\ (dps)_m
\end{pmatrix}||
$$
to see how well your functions fit the current data.
Try that out with different functions, e.g. f_1=s/(d_max-d_min), f_2=2s/(d_max+d_min) and so on and look at the values a_1 and a_2.
This is really fast to evaluate and hopefully give you a feel for which function works well with a lot of code reusability for different prototypes.
