Now you're probably wondering what that is. Basically, OMath aims to be a series of articles about different aspects of OGame being cut down and analyzed from a mathematical point of view. Why? Because it grants greater insight into the workings of the game, which in turn brings additional benefits when it comes down to strategies and skill. I'm doing this because I believe it can help members of the alliance become better players, and because I like maths (unlike 99,9% of the population). Hopefully, it'll make other people take interest in maths too, but that's not my goal.
Today's Topic : Introduction Although I plan to write OMath articles in layman's terms, my aim is also to present my reasoning and the steps I use to get my results. As such, the first topic will be dedicated to presenting a brief (and down-to-earth/not-as-abstract-as-the-rest; I hope potential math gurus will pardon my gross simplifications) overview of mathematical notions I'll use in the other articles. (Note : all of these presume a basic understanding of arithmetic and elementary algebra.)
Functions: Functions are fundamental and analysis, the mathematical discipline I'll use the most in upcoming OMath articles. Basically, if f(x) is an equation involving x, then we call f a function. We then say that f associates to each x a value f(x) that is obtained by substituting x for its value in the equation. Okay, that was abstract, so here's an example :
f(x) = 3x + 4
That's defining a function. Easy as pie. We can then evaluate (that means choose a value for x) the function f :
f(0) = 3 * 0 + 4 = 0 + 4 = 4
f(10) = 3 * 10 + 4 = 30 + 4 = 34
f(-4/3) = 3 * (-4/3) + 4 = -4 + 4 = 0
Ok, we could continue like that, but there's an awful lot of real numbers so I'll assume you understood the basics. Of course, we could define more complex functions, such as g(x) = x^2 + 4x - 2 or h(x) = 3^x. (If you're wondering, the '^' character is a stand-in for exponentiation, so 2^4 = 2 * 2 * 2 * 2 = 16. Think of it as an arrow pointing upward, because you would write the second number like so : x² = x^2.)
Sequences: That one is easy. A sequence is basically a list of numbers taken in a particular order. Usually, each number in the sequence is given by a certain function f(x) by having x take the values 0, 1, 2, 3, etc. For instance, the sequence (1, 1/2, 1/3, 1/4, ...) is the sequences of 1/x. When discussing sequences, it is customary to write a(n) instead of f(x) to represent the function generating the sequence. To make things even more easier, the only sequences used by OGame are geometric sequences, or sequences that looks like a(n) = q*(r^n) for a certain q and r.
Limit: Although the notion of limit is a very interesting one, we will only need a very particular case of its applications. Basically, whenever I mention the limit of a function f(x) or of a sequence a(n), I refer to the behaviour of the value of f(x) or of a(n) when x or n takes very large values (as in 1,000,000+). A classic example is the limit of the sequence a(n) = 1/n, which is equal to 0. This means that, as n takes larger and larger values, 1/n will take smaller and smaller values until it "reaches" 0 when n "reaches" infinity. (Yes, you calculate the limit by evaluating the function or the sequence at infinity even though infinity is not a number.)
Series: Series are almost as easy as sequences. A series is, simply put, the sum of some terms taken from a sequence. Again, the context of OGame makes things easier for us : the only series that will have to consider will be sums of consecutive terms in a geometric sequence (a(n) = qr^n). Now, I'll omit the explanation of the following result (because the proof is actually tedious and boring), but the series obtained by taking the s first terms in the sequence qr^n has a sum of q * (1 - r^s) / (1 - r). Thus, we can calculate the following example. Let's consider the sequence a(n) = 500*2^n = (500; 1,000; 2,000; 4,000; ...). Say we want the sum of terms ranging from n=3 to n=7. I'll write this kind of stuff like this :
sum (500*2^n) from 3 to 7 = [sum (500*2^n) from 0 to 7] - [sum (500*2^n) from 0 to 2] = 500 * (1 - 2^8) / (1 - 2) - 500 * (1 - 2^3) / (1 - 2) = 500 * (1 - 256) / (-1) - 500 * (1 - 8) / (-1) = 500 * 255 - 500 * 7 = 127,500 - 3,500 = 124,000
Since we can only calculate the sum when starting from 0 (which gives s+1 terms if the last is n=s), we find the sum of any arbitrary range by adding the missing terms and then subtracting them.
Derivatives: Calculus. Big stuff. I plan on touching a bit of calculus (to get derivatives of functions, no integrals or other scary stuff), but that's going into advanced math stuff that most people won't follow. To keep it simple, the idea of a derivative is to measure how "fast" a function grows around a certain x. For instance, the function f(x) = 2x always increases at the same rate, but the function g(x) = x^2 increases faster when x increases. An intuitive way of thinking it is to ask yourself the question : "If I'm at currently at x (so my function has the value f(x)), how far away (or how much do I need to add) is f(x+1)?". Keeping the g(x) = x^2 example, we see that going from x=1 to x-2 increases the value of g(x) from 1 to 4, or by +3; however, going from x=11 to x=12 increases the value of g(x) from 121 to 144, or by +23.
Alright, that should be the end of my introduction topic. I wish to apologize to those who think it to be too much maths; I promise the next one will be better (or not as bad, at least). I'm aware that some of the stuff might seem too abstract for some, but hopefully the next topic will be more interesting (having a real concrete approach should help in that regard). I'll probably post it soon not to keep you all waiting too much.
Very well done. Although this quickly gets beyond me, I understand the concepts and will refer back to this as your next articles come out. Keep 'em coming!