# User talk:Dsekercioglu/MEA

## Contents

And to make it even faster2216:08, 25 September 2017
Principles behind?102:56, 24 September 2017

## And to make it even faster

       double x = bulletSpeed;
double a = -3.508129323E-5;
double b = 2.460363294E-3;
double c = -6.666318894E-2;
double d = 8.545020365E-1;
double e = -3.337830707;
double angle = a * x * x * x * x + b * x * x * x + c * x * x + d * x + e;
return Math.sin(angle) / (bulletSpeed / 8 - Math.cos(angle));

Xor (talk)14:33, 23 September 2017

btw, you can try newton's method to find the max value ;)

Xor (talk)14:40, 23 September 2017

I know. But calculated numbers weren't exact and Wolfram Alpha's computation time exceeds.

14:43, 23 September 2017

Precision is up to 9 numbers. I think that it is enough.

14:45, 23 September 2017

Sorry, I didn't see that you changed the code. In my robot I did it like that but it is more understandable with Math.pow(x, y).

14:55, 23 September 2017

Math.pow makes me think something like e^x, but it turned out to be polynomial.

Xor (talk)14:59, 23 September 2017

Wow, I had no idea that the escape angle could be 15% bigger than traditional MEA calculation at the most common bulletspeed of 1.9 . . . Seems like my list of things to do for GresSuffurd to become top-10 again, gets bigger and bigger.

17:56, 23 September 2017

this formula is bigger, simply because it is wrong

Xor (talk)02:44, 24 September 2017

Can you give the formula you used to prove that my formula is wrong?

11:08, 24 September 2017

I published the reason why it is wrong in another thread.

Xor (talk)11:49, 24 September 2017

I also agree that it's wrong. But why is it bigger than the correct one? Can you clarify that?

I understood that the problem with this is that it assumes that it's optimal to move in a fixed retreat angle (like moving in a perfect orbit), when it's actually true that the best retreat angle isn't a function only of the initial position, but it changes as you move around the wave. Is that the real issue?

13:51, 24 September 2017

I knew it's wrong because I had made the same mistake in my previous research.

It's bigger, simply because it uses some smaller distance to calculate the radians.

The correct one is:

$\theta = \int_0^{t_1} \frac{v_{lateral}}{d_{initial} + v_{retreat} t}dt$

where $\theta$ is the escape angle, $t_1$ is the total time (from bullet fired, to bullet hit). (this formula is true even if $v_{lateral}$ or $v_{retreat}$ is not constant)

Note that $d_{initial} + v_{retreat} t$ is bigger than (his) $(v_{bullet} - \overline{v_{retreat}})t_1$ almost all of the time,

as $d_{initial} = (v_{bullet} - \overline{v_{retreat}})t_1$.


Therefore his integral ($\theta = \int_0^{t_1} \frac{v_{lateral}}{(v_{bullet} - \overline{v_{retreat}})t_1}dt = \frac{v_{lateral}}{v_{bullet} - \overline{v_{retreat}}}$, assume $v_{lateral}$ is constant) is bigger.

Xor (talk)16:02, 24 September 2017

• Actually, I'm not sure that Traditional MEA is correct. It assumes that the bot doesn't change it's move angle until the wave hits. Because of that you can't get a MEA higher than Pi / 2 with Traditional MEA formula. When you move orbitally, lateralVelocity / (bulletSpeed + advancingVelocity) is the formula that will give you the EA so you can get a EA higher than Pi / 2.
17:09, 24 September 2017

You can't get escape angle higher than Pi/2 by the traditional formula simply because it is impossible.

If your formula can, it must be wrong.

Xor (talk)17:12, 24 September 2017

## Principles behind?

in your calculation, you are calculating escape angle theta as theta = v_lateral / (v_bullet - v_retreat)

however, imo this formula is only true when you are moving orbital exactly ;)

Else, you have to calculate some integral, as the change rate of theta is changing everytime the distance changes. (Like my version)

Xor (talk)14:57, 23 September 2017

imo if you really want to calculate the max escape in a brute force way — try every possible paths a robot can move.

And that would be, for an estimated hit time of 50ticks, if you try 360 angles per tick — there will be 360^50 angles in total (~10^128). Anyway, you can always prune a lot of them.

Xor (talk)02:55, 24 September 2017