This document covers a few mathematical constructs that appear very frequently when doing algorithmic analysis. We will spend only minimal time in class reviewing these concepts, so if you're unfamiliar with the following concepts, please be sure to read this document and head to office hours if you have any follow-up questions.

We also have a few practice problems located at the bottom of this doc if you're very rusty and want some practice.

*(Note: this document was co-written with Meredith Wu)*

Exponentiation is often thought of as *repeated multiplication*. For example,
the expression \(b^x\) is equivalent to the following when \(x\) is an integer:

We say here that \(b\) is the *base* and that \(x\) is the *exponent*.

What happens if \(x\) is zero, or \(x\) is negative? In those cases, the exponent is defined to behave as follows:

- \(\displaystyle b^0 = 1\)
- \(\displaystyle b^{-x} = \frac{1}{b^x}\)

(Note that neither the base nor the exponent needs to be integers. However, explaining how exponentiation works in these cases is beyond the scope of this document and isn't too relevant to this course.)

One example where exponents appear in code is if we had a loop that starts by performing operation then performs double that amount with each iteration. If we keep doubling the amount of work done, the code would be doing \(2^n\) operations on the \(n^\text{th}\) iteration.

**Power of a power**

\(\displaystyle (b^x)^y = b^{xy} \)**Rule:**

\(\displaystyle (b^2)^4 = (b \cdot b) \cdot (b \cdot b) \cdot (b \cdot b) \cdot (b \cdot b) = b^8 \)**Example:****Multiplying exponents**

\(\displaystyle (b^x)\cdot(b^y) = b^{x+y} \)**Rule:**

\(\displaystyle (b^2)\cdot(b^3) = (b \cdot b) \cdot (b \cdot b \cdot b) = b^5 \)**Example:****Dividing exponents**

\(\displaystyle \frac{b^x}{b^y} = b^{x-y} \)**Rule:**

\(\displaystyle \frac{b^5}{b^3} = \frac{b \cdot b \cdot b \cdot b \cdot b}{b \cdot b \cdot b} = b^2\) \(\displaystyle \frac{b^3}{b^5} = \frac{b \cdot b \cdot b}{b \cdot b \cdot b \cdot b \cdot b} = \frac{1}{b^2} = b^{-2} \)**Example:****Taking the power of two multiplied terms**

\(\displaystyle (a \cdot b)^x = (a^x) \cdot (b^x) \)**Rule:**

\(\displaystyle (a \cdot b)^2 = (a \cdot b) \cdot (a \cdot b) = (a \cdot a) \cdot (b \cdot b) = a^2 \cdot b^2 \)**Example:**

The logarithm operation is defined as the *inverse* of exponentials.
For example, suppose we know \(b^x = n\); that is, we know that \(n\) is \(b\) to the
power of \(x\). In that case, we also know \(x = \log_b(n)\); that is, we say that
\(x\) is the logarithm of \(n\) with the base \(b\).

Here are some examples of equations using logs:

- \(\displaystyle \log_3(27) = 3\)
- \(\displaystyle \log_2(16) = 4\)

One important rule to keep in mind is that the logarithm is *not defined* when
\(n = 0\). This makes sense when you remember that logarithms and exponents are inverses
of each other: there are no possible values of \(b\) and \(x\) that can make \(b^x = 0\) true,
which means that it is again impossible to find values of \(b\) and \(x\) that can
make \(x = \log_b(0)\) true.

Because computers are binary systems, within this course, and within computer science in general, we treat the expression \(\log(n)\) and \(\log_2(n)\) as being exactly equivalent – that is, if we omit the base, we assume it's always equal to 2.

So, in the context of this course, \(\log_2(16) = \log(16) = 4\).

We will see many examples of the log operation in use when we begin analyzing trees and recursive functions later this quarter.

Note: we assume here that in all cases, variables are non-zero.

**Log of a product**

\(\displaystyle \log_b(x\cdot y) = \log_b(x) + \log_b(y) \)**Rule:**

\(\displaystyle \log_2(4 \cdot 8) = \log_2(32) = 5 = 2 + 3 = \log_2(4) + \log_2(8) \)**Example:****Log of a fraction**

\(\displaystyle \log_b\left(\frac{x}{y}\right) = \log_b(x) - \log_b(y) \)**Rule:**

\(\displaystyle \log_2\left(\frac{32}{4}\right) = \log_2(8) = 3 = 5 - 2 = \log_2(32) - \log_2(4) \)**Example:****Log of a power**

\(\displaystyle \log_b(x^y) = y \cdot \log_b(x) \)**Rule:**

\(\displaystyle \log_2(4^3) = \log_2(64) = 6 = 3 \cdot 2 = 3 \cdot \log_2(4) \)**Example:****Power of a log**

\(\displaystyle x^{\log_b(y)} = y^{\log_b(x)} \)**Rule:**

\(\displaystyle 4^{\log_2(8)} = 4^{3} = 4 \cdot 4 \cdot 4 = 8 \cdot 8 = 8^2 = 8^{\log_2(4)} \)**Example:****Change of base**

\(\displaystyle \log_b(x) = \frac{\log_d(x)}{\log_d(b)} \)**Rule:**

\(\displaystyle \log_2(9) = 3.16992... = \frac{\log_3(9)}{\log_3(2)} \)**Example:**

The summation (\(\sum\)) is a way of concisely expressing the sum of a series of related values. For example, suppose we wanted a concise way of writing \(1 + 2 + 3 + \cdots + 8 + 9 + 10\). We can do so like this:

$$ \sum_{i=1}^{10} i $$The "\(i = 1\)" expression below the \(\sum\) symbol is initializing a variable called \(i\) which is initially set to 1. We then increase \(i\) by one from that initial value up to and including the number at the top of the \(\sum\) symbol. We then take each value of \(i\) and substitute it to the expression to the right of the \(\sum\) symbol, and add each of those expressions together.

Here is another example:

$$ \begin{align*} \sum_{i=1}^3 2 + i^2 &= (2 + 1^2) + (2 + 2^2) + (2 + 3^2) \\ &= 3 + 6 + 11 \\ &= 20 \end{align*} $$More generally, the summation operation is defined as follows:

$$ \sum_{i=a}^b f(i) = f(a) + f(a + 1) + f(a + 2) + \cdots + f(b - 2) + f(b - 1) + f(b) $$...where \(a, b\) are integers such that \(a \leq b\) and \(f(x)\) is some arbitrary function.

One thing to note is that the bounds of a summation are *inclusive*: in the
examples above, \(i\) varies from \(a\) up to *and including* \(b\).

We will see examples of summations in use when analyzing the behavior of loops later this quarter.

Note: you can also download these identities as a pdf.

**Splitting a sum**

\(\displaystyle \sum_{i=a}^b (x + y) = \sum_{i=a}^b x + \sum_{i=a}^b y \)**Rule:**

\(\displaystyle \sum_{i=1}^{10} (5 + 7) = 120 = 50 + 70 = \sum_{i=1}^{10} 5 + \sum_{i=1}^{10} 7 \)**Example:****Adjusting summation bounds**

\(\displaystyle \sum_{i=a}^b f(x) = \sum_{i=0}^b f(x) - \sum_{i=0}^{a - 1} f(x) \)**Rule:**

\(\displaystyle \sum_{i=5}^{8} i = 5 + 6 + 7 + 8 = \sum_{i=0}^{8} i - \sum_{i=0}^{4} i \)**Example:****Factoring out a constant**

\(\displaystyle \sum_{i=a}^b cf(i) = c \sum_{i=a}^b f(i) \)**Rule:**Note: \(c\) is some constant.

\(\displaystyle \sum_{i=1}^5 10n = 10\sum_{i=1}^5 n \)**Example:****Summation of a constant**

\(\displaystyle \sum_{i=0}^{n-1} c = \underbrace{c + c + \cdots + c}_{\text{$n$ times}} = cn \)**Rule:**Note: \(c\) is some constant. This rule is a special case of the previous one.

\(\displaystyle \sum_{i=0}^{5-1} 10 = 10 + 10 + 10 + 10 = 10 = 50 \)**Example:****Gauss's identity**

\(\displaystyle \sum_{i=0}^{n-1} i = \frac{n(n - 1)}{2} \)**Rule:**

\(\displaystyle \sum_{i=0}^{10-1} i = \frac{10(9)}{2} = 45 \)**Example:****Sum of squares**

\(\displaystyle \sum_{i=0}^{n-1} i^2 = \frac{n(n - 1)(2n - 1)}{6} \)**Rule:**

\(\displaystyle \sum_{i=0}^{10-1} i^2 = \frac{10 \cdot 9 \cdot 19}{6} = 285 \)**Example:****Finite geometric series**

\(\displaystyle \sum_{i=0}^{n-1} x^i = \frac{x^n - 1}{x - 1} \)**Rule:**

\(\displaystyle \sum_{i=0}^{10 - 1} 5^i = \frac{5^10 - 1}{5 - 1} = 2441406 \)**Example:****Infinite geometric series**

Applicable only when \(-1 < x < 1\). \(\displaystyle \sum_{i=0}^\infty x^i = \frac{1}{1 - x} \)**Rule:**

\(\displaystyle \sum_{i=0}^\infty \left(\frac{1}{2}\right)^i = \frac{1}{1 - 1/2} = 2 \)**Example:**

We will spend a fair amount of time comparing the relative *growth rates*
of different functions. Here is a plot of several different functions:

- If \(a = \log(n)\), what is \(2^a\)?
- Show that \(\log_b(b^x) = x\).
- Solve \(7 + 15 \cdot 11^{1-3x} = 10\) in terms of \(x\). (Hint: we can take the log of both sides of the equation. Consider: why is it ok to do this?)
- Solve \(2^{t^2 - t} = 4\).

- Simplify \(\displaystyle \sum_{k=1}^n k(k + 1)\)
- Show that the sum of the first \(n\) positive odd integers is \(n^2\).
- Simplify \(\displaystyle \sum_{k=1}^n (n-k)\).
- Simplify \(\displaystyle \sum_{k=0}^n 2^k\).
- Show that \(\displaystyle \sum_{k=1}^{\infty} \frac{1}{2^k}\) converges to 1.