# Algorithms - Some intuition
When thinking about algorithms, something that I am realizing is that we are often dealing with some **objective** construct or reality, and we wish to then find more *efficient representations* of that specific reality, based on our particular goal or setting.
For instance, if we consider a line there are several different ways in which we can uniquely define any given line:
$\text{(1)} \longrightarrow y = mx + b$
$\text{(2)} \longrightarrow (a,b) , (c,d)$
Where above (2) is just stating two unique points that fall on our line, which indeed does uniquely define it (we can convert (2) to (1) with ease).
Again, our line exists objectively in the world. We are just using two different ways of uniquely describing it. In other words, our description *maps* to a unique line; there is no ambiguity, never will either of the two above descriptions map to more than one line. Visually we can see this below:

Note that this comes up *all the time* in different branches of mathematics, for instance in:
* [Change of variables](Integrals.md#Change%20of%20Variables)
* [Polar coordinates for certain integrals](Integration-Difficulty.md#Answer%201).
* [Using different basis to represent a vector](Abstract%20Vector%20Spaces.md)
* [Representing a function in frequency space via the fourier transform](Fourier-Series.md)
The key idea is that we have different ways to describe objective mathematical constructs. In a sense, the **big idea** behind efficient and beautiful algorithms is selecting an *effective representation* that allows us to uniquely describe our construct/problem in a more efficient way. This is shown incredibly clearly when using [polar coordinates for certain integrals](Integration-Difficulty.md#Answer%201). By simply transforming our coordinate system from cartesian to polar we have found a unique representation (it still requires two degrees of freedom to uniquely specify a point- namely $r$ and $\theta$, just as cartesian required $x$ and $y$). Why is it suddenly more efficient? In a sense these representations each *encode* certain information (polar coordinates encode information about circles and angles by default). Depending on our problem, it can be very helpful when that information is encoded in our representation. Knowing how to do this is the fundamental insight to coming up with fast, efficient, and powerful algorithms. You are taking advantage of certain properties in the underlying structure.
A note: this of course applies when the fundamental structure of the problem has a great deal of *symmetry*. We can often take advantage of that symmetry. For instance, consider consider integrating over an **even function**, $f(x)$:
$\int_{- \infty}^{\infty} f(x) = 2 \int_{0}^{\infty} f(x)$
If we had to actually compute this then by taking advantage of the symmetry present we can cut our number of computations *in half*.
### References
A great video to watch here is:
* [The Fast Fourier Transform (FFT): Most Ingenious Algorithm Ever?](https://youtu.be/h7apO7q16V0)
---
Tags: #review
Links to: [Big Idea Representation](Big%20Idea%20Representation.md)