Archive for Settembre 13th, 2021

Scarabocchio…

lunedì, Settembre 13th, 2021
…sul far della sera

A spiral of first 10k prime numbers…

lunedì, Settembre 13th, 2021

A prime number is a natural number greater than 1 that is not a product of two smaller natural numbers.

Euclid proved the infinity of primes by contradiction.

  • Assume there are a finite number, n , of primes , the largest being \(p_n\);
  • Consider the number that is the product of these, plus one: \(N = \prod\limits_{i = 1}^n {{p_i}} + 1\)
  • By construction, \(N\) is not divisible by any of the \(p_i\).
  • Hence it is either prime itself, or divisible by another prime greater than \(p_n\), contradicting the assumption.

Euclid’s proof is the easiest to understand, especially if you’re not well-versed in mathematics, but now I am going to introduce another proof of the infinitude of primes, which is shorter and I also find it to be the most appealing, at least in my eyes.

In mathematics, the prime-counting function is the function counting the number of prime numbers less than or equal to some real number \(x\). E.g. for \(x=10.124\), we have that 4 number of prime number: 2, 3, 5, 7.

Let \(\pi(x)\) be a prime-counting function.

The Prime Number Theorem suggests that:

\(\mathop {\lim }\limits_{x \to \infty } \frac{{\pi \left( x \right)}}{{x/\ln (x)}} = 1\)

In other words, we can say that \(\pi(x)\) “behaves” like \(x/\ln (x)\) when \(x\) is approaching infinity — there’s an asymptotic ‘equality’.

So, there are infinite primes.


For Python code, we use SymPy – a Python library for symbolic mathematics. In particular, we’ll use primerange(a, b) for generate all prime numbers in the range [a, b).

The code:

import sympy
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as ani
#plt.style.use('dark_background')
plt.style.use('default')

def convert_to_polar_coordinates(num):
    return num*np.cos(num), num*np.sin(num)


lim = 10000

fig, ax = plt.subplots(figsize = (8, 8))
primes_numbers = sympy.primerange(0, lim)
primes_numbers = np.array(list(primes_numbers))
x, y = convert_to_polar_coordinates(primes_numbers)


def init():
    ax.cla()
    ax.plot([], [])


def plot_in_polar(i):
    ax.cla()
    ax.plot(x[:i], y[:i], linestyle='', marker='o', markersize=0.75, c='#FC0000')
    ax.set_xlim(-lim, lim)
    ax.set_ylim(-lim, lim)
    ax.axis("off")

plt.savefig('prime.png')

animator = ani.FuncAnimation(fig=fig, func=plot_in_polar, interval=1, frames=len(primes_numbers))

animator.save("prime.gif")

plt.show()
A spiral of first 10k prime numbers in a polar coordinate system.

Sulla irrazionalità delle radici quadrate dei numeri naturali non quadrati.

lunedì, Settembre 13th, 2021

Sia \(d\) un numero e \(n \in {\mathbb{N}^ + }\) tale che:

\({n^2} < d < {\left( {n + 1} \right)^2}\)


ovvero:

\(n < \sqrt d < \left( {n + 1} \right)\)

e quindi:

\(0< \sqrt{d}-n<1\)

Per assurdo, sia

\(\sqrt d = \frac{p}{q}{\text{ con }}p,q \in {\mathbb{N}^ + }\)

Più precisamente, assumeremo che \(q\) sia il minimo dei possibili denominatori per queste espressioni razionali di \(\sqrt d\) e quindi assumiamo che sia il minimo \(q\) tale che \(q \sqrt{d}=p \in \mathbb{N}^{+}\).

Quindi:

\(\left( {\sqrt d – n} \right)q\sqrt d = qd – nq\sqrt d \in {\mathbb{N}^ + }\)

e pertanto, essendo \(\sqrt{d}-n<1\) dev’essere:

\(\left( {\sqrt d – n} \right)q < q\)

contro il fatto che, per ipotesi, \(q\) è il minimo dei possibili denominatori per la rappresentazione razionale di \(\sqrt d\).

Per principio…

lunedì, Settembre 13th, 2021

Sei uno che per principio non s’aspetta più niente da niente. Ci sono tanti, più giovani di te o meno giovani, che vivono in attesa d’esperienze straordinarie; dai libri, dalle persone, dai viaggi, dagli avvenimenti, da quello che il domani tiene in serbo. Tu no. Tu sai che il meglio che ci si può aspettare è di evitare il peggio.

– Italo Calvino, da Se una notte d’inverno un viaggiatore