Great breakdown! To add a bit more detail:
We're looking for 30 points of intersection between a degree-20 polynomial <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">P(x)</annotation></semantics></math>P(x) and the rational function <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>y</mi><mo>=</mo><mfrac><mn>1</mn><msup><mi>x</mi><mn>40</mn></msup></mfrac></mrow><annotation encoding="application/x-tex">y = \frac{1}{x^{40}}</annotation></semantics></math>y=x401. Setting them equal gives:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mfrac><mn>1</mn><msup><mi>x</mi><mn>40</mn></msup></mfrac><mo>⇒</mo><mi>P</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><msup><mi>x</mi><mn>40</mn></msup><mo>=</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">P(x) = \frac{1}{x^{40}} \Rightarrow P(x)x^{40} = 1</annotation></semantics></math>P(x)=x401⇒P(x)x40=1
So, we get the equation:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><msup><mi>x</mi><mn>40</mn></msup><mo>−</mo><mn>1</mn><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">P(x)x^{40} - 1 = 0</annotation></semantics></math>P(x)x40−1=0
This is a degree-60 equation (since <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>deg</mi><mo></mo><mo stretchy="false">(</mo><mi>P</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><msup><mi>x</mi><mn>40</mn></msup><mo stretchy="false">)</mo><mo>=</mo><mn>20</mn><mo>+</mo><mn>40</mn><mo>=</mo><mn>60</mn></mrow><annotation encoding="application/x-tex">\deg(P(x)x^{40}) = 20 + 40 = 60</annotation></semantics></math>deg(P(x)x40)=20+40=60). So in theory, up to 60 real or complex roots (intersections), but we’re only interested in whether exactly 30 real intersections are possible.
To analyze that, we look at the number of local extrema needed to support 30 real roots. As pointed out, 30 roots imply at least 29 local extrema (by Rolle’s Theorem). So we check how many critical points the function <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>f</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mi>P</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><msup><mi>x</mi><mn>40</mn></msup><mo>−</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">f(x) = P(x)x^{40} - 1</annotation></semantics></math>f(x)=P(x)x40−1 can have.
The derivative is:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msup><mi>f</mi><mo mathvariant="normal" lspace="0em" rspace="0em">′</mo></msup><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mn>40</mn><mi>P</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><msup><mi>x</mi><mn>39</mn></msup><mo>+</mo><msup><mi>P</mi><mo mathvariant="normal" lspace="0em" rspace="0em">′</mo></msup><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><msup><mi>x</mi><mn>40</mn></msup><mo>=</mo><msup><mi>x</mi><mn>39</mn></msup><mo stretchy="false">(</mo><mn>40</mn><mi>P</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>+</mo><mi>x</mi><msup><mi>P</mi><mo mathvariant="normal" lspace="0em" rspace="0em">′</mo></msup><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">f'(x) = 40P(x)x^{39} + P'(x)x^{40} = x^{39}(40P(x) + xP'(x))</annotation></semantics></math>f′(x)=40P(x)x39+P′(x)x40=x39(40P(x)+xP′(x))
-
<math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msup><mi>x</mi><mn>39</mn></msup></mrow><annotation encoding="application/x-tex">x^{39}</annotation></semantics></math>x39 gives one root at <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">x = 0</annotation></semantics></math>x=0
-
<math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>40</mn><mi>P</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>+</mo><mi>x</mi><msup><mi>P</mi><mo mathvariant="normal" lspace="0em" rspace="0em">′</mo></msup><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">40P(x) + xP'(x)</annotation></semantics></math>40P(x)+xP′(x) is a degree-20 polynomial (since <math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>P</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">P(x)</annotation></semantics></math>P(x) is degree 20), so at most 20 roots.
That means the derivative has at most 21 real roots → at most 21 extrema, which is less than the 29 needed.
The variety in this game is impressive. Each environment looks different, and the obstacles evolve as you progress. I like that it’s not just mindless smashing—there’s a bit of strategy involved if you want to maximize your score or survive longer. And honestly, it’s hard to beat that rush you get from completely leveling a city block with one swipe. animal rampage 3d is just pure, unapologetic fun.