Posts

Continued fraction factorization method

Image
The factorization method that we'll discuss in this post, it's called the  continued fraction factorization method  (CFRAC), and is quite an old method, but still pretty interesting, sharing many concepts and ideas with other modern factorization methods.

Curiosities in number theory

Image
In this post I would like to present some interesting exercises in number theory , along with some curious formulas and identities for some number-theoretic functions .

Investigating the Fibonacci numbers modulo m

Image
The  Fibonacci sequence  is, without doubt, one of the most popular sequences in mathematics and in popular culture, named after Italian mathematician Leonardo of Pisa (also known as  Fibonacci , Leonardo Bonacci, Leonardo of Pisa, Leonardo Pisano Bigollo, or Leonardo Fibonacci), who first introduced the numbers in Western European with his book  Liber Abaci , in 1202.

Representing integers as the sum of two squares

Image
In this post we present a recursive algorithm for finding all the possible representations, as a sum of two squares, for any given integer that can be expressed this way.

Representing integers as the difference of two squares

Image
Most integers can be represented as a difference of two squares, where each square is a non-negative integer.

Various representations for famous mathematical constants

Image
In this unusual post, much like in the older post,  The beauty of Infinity , we're listing the most famous mathematical constants as representations of  infinite series ,  infinite products  and limits .

Thoughts on programming language notations

Image
Some posts ago, we looked at what it's required in creating a new programming language . In this post we're going a little bit more into it, trying to find ways to effectively express meanings in natural ways, similar to what we can express in a natural language.

Bacovia: a symbolic math library

Image
Named after the great symbolist poet, George Bacovia , I created this library to symbolically manipulate mathematical expressions in a simple and elegant way.

Mandelbrot set

Image
The Mandelbrot set and its complex beauty.

RSA algorithm

Image
RSA is a practical public-key cryptographic algorithm, which is widely used on modern computers to communicate securely over large distances. The acronym of the algorithm stands for Ron Rivest , Adi Shamir and Leonard Adleman , which first published the algorithm in 1978. # Algorithm overview Choose `p` and `q` as distinct prime numbers Compute `n` as `n = p*q` Compute `\phi(n)` as `\phi(n) = (p-1) * (q-1)` Choose `e` such that `1 < e < \phi(n)` and `e` and `\phi(n)` are coprime Compute the value of `d` as `d ≡ e^(-1) mod \phi(n)` Public key is `(e, n)` Private key is `(d, n)` The encryption of `m` as `c`, is `c ≡ m^e mod n` The decryption of `c` as `m`, is `m ≡ c^d mod n` # Generating `p` and `q` In order to generate a public and a private key, the algorithm requires two distinct prime numbers `p` and `q`, which are randomly chosen and should have, roughly, the same number of bits. By today standards, it is recommended that each prime number ...

Infinitesimals

Image
In this post we're going to take a look at what infinitesimals are and why they are important. Infinitesimals are an abstract concept of very small values that are impossible to represent quantitatively in a finite system. # Definition We define one infinitesimal as: `ε = lim_{n to \infty}\frac{1}{n}` with the inequality: `ε > 0`. In general, the following inequalities hold true: `\frac{0}{n} < \frac{1}{n} < \frac{2}{n} < ... < \frac{n}{n}` as `n -> \infty`. # Appearance The infinitesimals appear in some fundamental limits, one of which is the limit for the natural exponentiation function: `lim_{n to \infty}(1 + \frac{\x}{n})^n = \exp(\x)` Using our infinitesimal notation, we can rewrite the limit as: `lim_{n to \infty}(1 + ε*\x)^n = \exp(\x)` where, for `x=1`, we have: `lim_{n to \infty}(1 + ε)^n = \e`. # Debate There was (and, probably, still is) a debate in mathematics whether the following limit: `lim_{n to...

Is the Riemann hypothesis true?

Image
In 2001,  Jeffrey Lagarias  proved that the  Riemann hypothesis  is equivalent to the following statement ( proof here ): `\sigma(n) <= \H_n + \ln(\H_n)*\exp(\H_n)` with strict inequality for `n > 1`, where `\sigma(n)` is the sum of the positive divisors of `n`. In 1913,  Grönwall  showed that the asymptotic growth rate of the  sigma function  can be expressed by: `\lim_{n to \infty}\frac{\sigma(n)}{\n \ln\ln n} = \exp(\gamma)` where  lim  is the  limit superior . Relying on this two theorems, we can show that: `lim_{n to \infty}\frac{\exp(\gamma) * n \ln \ln n}{\H_n + \ln(\H_n) * \exp(\H_n)} = 1` with strict inequality for each `1 < n < \infty` (see  Wolfram|Alpha ): `\exp(\gamma) * n \ln \ln n < \H_n + \ln(\H_n) * \exp(\H_n)` If the Riemann hypothesis is true, then for each `n ≥ 5041`: `\sigma(n) <= \exp(\gamma) * n \ln \ln n` By using the usual definition of the ...

Euler-Mascheroni constant

Image
In this post we're going to take a look at a mysterious mathematical constant, called the Euler–Mascheroni constant , and its fascinating role in harmonic and prime numbers. # Is `gamma` transcendental? This constant, although it has a fairly simple definition, it is currently not known whether it is rational or irrational, but it is widely believed by mathematicians to be  transcendental , which also implies that it is irrational. It is usually defined as:  `\gamma = \lim_{n to \infty}(\H_n - \ln n)` where `\H_n` is the `n` th   harmonic number , which is defined as: `\H_n = \sum_{k=1}^(n)\frac{1}{k}` # "Proving" that `\gamma` is transcendental There exists a  proof that `\gamma` is transcendental, but the proof is very subtle: By Lindemann–Weierstrass theorem , the natural logarithm of any positive algebraic number other than 1 is a transcendental number . The `n` th  harmonic number is rational. As all rat...

Why 0÷0 doesn't have a value?

Image
In this short post we're going to take a look at why `0/0` is really undefined. # Overview It's an old mathematical issue, which has been debated many times over the centuries with mostly the same result: `0/0` does not have a defined value. But now, we're going to take a look at why this is true. # Illustration To illustrate this, let's consider the following sum: `\sum_{k=0}^(n)b^k = b^0 + b^1 + b^2 + ... + b^n` Deriving a closed form to this sum, we get: `\sum_{k=0}^(n)b^k = (b^(n+1) - 1) / (b-1)` For example, when `b=3` and `n=4`, we have: `3^0 + 3^1 + 3^2 + 3^3 + 3^4 = (3^(4+1) - 1) / (3-1)` All good so far. However, if we set `b=1`, we have a special case: `(1^(n+1) - 1) / (1-1) = 0/0` We know that `1^k=1` for any `k>=0`, therefore: `\sum_{k=0}^(n)1^k = n+1` but when `b=1`, our closed-form evaluates to `0/0` for any value of `n`. From this we can conclude that `0/0` does not have a certain value. Taking this example a little...

Symbolic mathematical evaluations

Image
Math is really fun, especially when is done symbolically. # Overview This time we're taking a look at some interesting relations and identities for fractions, which will give us an insight of what is really going on, for example, in an infinite sum and how we can analyze it by evaluating it symbolically. There is an useful and interesting identity for summing two fractions: $$\frac{a}{b} + \frac{c}{d} = \frac{ad + cb}{bd}$$ The question is: can we extend it to three fractions? What about ten? What about an infinite number of them? Well, yes, this is possible, and it's actually quite easy to find a general formula to this. To give you a taste how this can be analyzed, let's sum four fractions (using `a` for the numerator and `b` for the denominator, just for illustration, but they can have different values): $$\frac{a}{b} + \frac{a}{b} + \frac{a}{b} + \frac{a}{b} = \frac{b(b(b(a) + ab) + abb) + abbb}{bbbb}$$ Do you see the pattern? There...

Image edge detection

Image
Edge detection  is a fundamental tool in image processing, machine vision and computer vision. In this post we're going to take a look at a very basic edge detection algorithm, which takes into account a predefined tolerance value that can be adjusted to detect arbitrary fine details in a given image. # Algorithm The algorithm is extremely simple; it begins by iterating over each pixel in the image, then, for each pixel, it checks its neighbors. +-------+-------+-------+ |       |       |       | |   A   |   B   |   C   | |       |       |       | +-------+-------+-------+ |       |         |       | |   D   |         |   E   | |       |         |       | +-------+-------+-------+ | ...