Online Demo - Automatic step-by-step equation solver and visualizer like a teacher would explain.

Many people think that equations and algebra are obscure and use some esoteric languages. **Truth is that equations are actually relatively simple concepts**; knowing the base rules of the game and a bit of practice, you can learn to manipulate and solve them in a snap.

**Linear equation are the simplest form of equation you may deal with**; it restrict the problem to a unique unknown variable (usually called ‘x’) and no exponent e.g.:

x − 30 = 15

We all have solve this kind of equation every day even without even notifying it. Let’s say I am currently getting a training, I just know it’s been 30 minutes I am running and the coach told us that we still remain 15 minutes running. How much are we gonna run in total? This problem can be written as the following:

?TotalTime? − TimeAlreadyRun = TimeLeftx − 30 = 15

The result may already be solved, but let’s play the equation game:

TotalTime= TimeAlreadyRun + TimeLeft = 30 + 15 = 45Minutes

We know for sure we are gonna made a total 45 minutes run (except if the coach is playing on us). Now let’s have a peek to the rules of the game, you’ll see: there is quite few (even with the most complex problems)!

**An equation is like a statement saying "this equals that”**. The previous equation, x - 30 = 15 asks: **what x will make makes this equation true?**

The goal is thus to find that x; in the algebraic world, meaning to end up with:

**x = something without x.**

Next part present you the unique rule and useful tools dedicated to reach this goal. Keep in mind that **solving an equation is just like solving a puzzle**: there are things we can do and some others that are forbidden.

There is only two rules to satisfy:

**Whatever you do to one side of the equation, you must do to the other side.**

**You are forbidden to divide anything by 0.**

Get there for the list of tools:

https://wiki.hurna.io/mathematics/index.html#rules

You should always check that your “solution” is really a solution, there is nothing more easy: Replace ‘x’ by the solution value within the equation and verify that the equality is true.

Be careful to check that your solution never divide by 0!

In the previous example we found x = 45. If we place it within the equation, we get: 45 − 30 = 15

**Which is true: the solution has been verified.**

It’s not the optimal way, but the always winning robot always reach the goal using this method! Here is how he proceeds:

Does the equation have fractions?

Yes → Multiply every term (on both sides) by the denominator.

Does the equation involve parenthesis?

Yes → Expand the equation using the tools.

On either side, does it have like terms?

Yes → Combine like terms. (Don’t forget the sign in front of each term!)

Does it have variables on both sides of the equation?

Yes → Add or subtract the terms to get all the variables on the left side and all the constants on the right side.

At this point, the robot has a basic two-step equation (If not, he would be bugged).

Add or Subtract to remove any constants from the left side of the equation.

Multiply or Divide to remove any coefficients form the left side of the equation.

!SOLUTION FOUND!

At the end, the robot does not forget to check its answer to detect any eventual problem :). See the robot in action step-by-step:

**Any linear expression (the left or right part of an equation) can be drawn as a line in a 2D graphic**. The graph drawing is very simple. For each part of the equation, we have x on the horizontal axis and for a range of y values (vertical abscisse) we compute and **plot the points (x, y)**.

The easiest line, a constant: y=-3 (for all x, y = -3).

The other basic line to know: y=x (for all x, y as the same value).

Drawing here y = 2x

**Multiplying x by a constant is making a rotation on the line**

Drawing here all together y = 2x - 3

**Adding or substracting the expression by a constant value is just adding an offset**

A linear equation can be then drawn as two lines crossing each other. **The intersection point of those two lines is the equation solution** (if the lines are parallel, it means that the equation does not have any solution). Indeed the question answer the same one from the algebraic world: **What x will make makes this equation true, when are those lines equal?**

With our previous example:

The advantage of drawing a graph of an equation is that you can then use it to visualize out the value of y for any given value of x, or indeed x for any given value of y.

We have illustrated here the relationship between an algebraic equation and its graph plots giving you an alternative way to understand equations.

Jump in **Hurna Explorer** to practice and visualize yourself any equations.

In fact, computer programs (even the most advanced IA) are only a bunch of algorithms slapped together with some fancy structured data. That’s it:

**Algorithms + Data Structures = Programs**

*Algorithms*

Algorithms define how to operate, what to do exactly to solve a problem. **Learning algorithms does not require you to know any programming language**; it only requires you to have an understanding of the steps that are involved. Algorithm means finding the solution for any problem step by step. So, if we relate it to mathematics or physic, then it means solving an equation step by step with a recipe.

For instance, we want to get the number of seconds within some minutes. The algorithm (receipt) will simply be:

#minutes x 60 --> #seconds

Algorithms are independent of the programming languages used (algorithms remain the same, only the syntax may change); **it is however highly recommended to know one if you want implement your own algorithms and see them running**.

*Why are algorithms so important?*

Different kinds of algorithms solve different kinds of problems, it is important to understand how the algorithm solves the problem; without understanding them, it’s almost impossible to see things from higher perspective. Similarly, one can’t build a bridge by just placing brick after another; there has to be deeper understanding of what one is doing, what problem are solving and why is it done this way. In context of computing, programming or just to see what is going on inside all your electronical devices, understanding algorithms gives you a deep vision.

Understanding the details of the algorithms involved gives you the ability to predict if there are special cases in which it won’t work quickly or produce unacceptable results. **Understanding algorithms is a requirement to handle program accuracy and speed**.

*Learning Algorithms*

Of course, you will also run across problems that has not been resolved yet. In these cases, you have to come up with a new algorithm, or apply an old algorithm in a new way. **The more you know about algorithms in this case, the better your chances are of finding a good way to solve the problem**. In many cases, a new problem can be reduced to an old problem without too much effort, but you still need to have a fundamental understanding of the old problems.

By developing a good understanding of a large range of algorithms, you will be able to choose the right one for a problem and apply it properly. Furthermore, solving problems like those will help you to hone your skills in this respect. Many of the problems, **though they may not seem realistic, require the same set of algorithmic knowledge that comes up every day in the real world**.

Don’t spend any time memorizing algorithms

That’s not the point; instead, **try to understand how different algorithms approach different problems**. Learn about techniques such as recursion, divide-and-conquer, dynamic programming, graph-theory, complexity… See what makes one approach slow while the other is fast and learn what the tradeoffs are.

**The key is to get insight in how we can make computers do things.**

Algorithms are way easier to understand than you can imagine

Algorithms are almost always associated to mathematics and all the obscurantisme it inspires. The math is useful but you won’t need it most of the time. You won’t need to handle mathematics or master programming to understand all these fancy algorithms and data structures.

Using the Hurna Explorer will give you a fun highway to visualize and understand the algorithms listed below.

**Fractal Generator**

Lindenmayer System

**Maze Generator**

Binary Tree

Depth First Seach (DFS)

Kruskal’s

Prim’s

Recursive Division

Sidewinder

**Search**

Binary

K’th order statistic (QuickSelect)

**Sort**

Aggregate (In Place)

Bubble

Cocktail

Comb

Merge (In Place)

Partition-Exchange

Quick (Simple)