Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Physique
#1
Les nombres premiers

Comment pourrait-on qualifier un nombre premier en Physique ?

Une définition simple : un nombre qu'on peut partager mais pas en plusieurs parts égales non unitaires.

Rien (0) : on ne peut pas partager une quantité zéro.

Une pomme (1) : on peut la partager, en la donnant à une personne.

Deux gâteaux (2) : on peut les partager entre deux personnes en donnant un gâteau à chacun, ou donner les deux gâteaux à une personne.

Trois sucres (3) : on peut les partager entre trois personnes en donnant un sucre à chacun, ou donner tous les sucres à une personne. On pourrait donner 1 sucre à une personne et deux sucres à une autre personne, mais ce ne serait pas un partage à parts égales.

Quatre bonbons (4) : on peut les partager entre quatre personnes en donnant un bonbon à chacun, ou donner tous les bonbons à une personne. On pourrait donner 1 bonbon à une personne et 3 bonbons à une autre personne, mais ce ne serait pas un partage à parts égales. On pourrait aussi donner 2 bonbons à une personne et 2 bonbons à une autre personne, et là c'est le drame car ce sont des parts égales non unitaires, on sort du cadre des nombres premiers.

Cinq petits pains (5) : on peut les partager entre cinq personnes en donnant un petit pain à chacun, ou donner tous les petits pains à une personne 101
On pourrait donner 1 petit pain à une personne et 4 petits pains à une autre personne, ou 2 petits pains à une personne et 3 petits pains à une autre personne mais ce ne serait pas un partage à parts égales.

Six diamants (6) : on peut les partager entre six personnes en donnant un diamant à chacun, ou donner tous les diamants à une personne 101 101 020
On pourrait donner 1 diamant à une personne et 5 diamants à une autre personne (Fabien Olicard par exemple ^^) ou 2 diamants à une personne et 4 diamants à une autre personne, ou encore 1 diamant à une personne, 2 diamants à une autre personne et 3 diamants à encore une autre personne, mais ce ne serait pas un partage à parts égales. En revanche on peut partager 3 diamants à une personne et 3 diamants à une autre personne, ou 2 diamants à une personne, 2 diamants à une autre personne et 2 diamants à encore une autre personne, et là c'est de nouveau le drame car ce sont des parts égales non unitaires, on sort du cadre des nombres premiers.

Et du coup les nombres premiers seraient bien 1, 2, 3, 5, etc. 128
Répondre
#2
Une autre contradiction mathématique : la définition d'un entier naturel :
https://fr.wikipedia.org/wiki/Entier_naturel

La définition est intuitive, à ceci près que :

Citation :La définition originelle, due à Richard Dedekind, de l'ensemble des entiers naturels ne comprend pas le nombre zéro; plus récemment une autre définition a été proposée qui inclut zéro. Ces deux définitions coexistent encore aujourd'hui. Selon les acceptions, la liste des entiers naturels est donc :

1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 ; 9 ; 10 ; 11 ; …
ou
0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 ; 9 ; 10 ; 11 ; …

C'est fou non ?
Donc selon le besoin, en mathématiques on utilisera N - sans être sûr de ce que ça recouvre - ou N* pour indiquer explicitement l'exclusion du 0.

En Physique c'est plus simple, une quantité nulle n'a aucun intérêt (sauf si bien sûr on veut étudier les propriétés du vide ^^).
Un entier naturel c'est donc une pomme, deux pommes, trois pommes, etc.

[Image: 220px-Three_apples.svg.png]


J'ai vu la vidéo de Science étonnante (merci Shadoc) qui parle des nombres premiers :
https://www.youtube.com/watch?v=R37JHiA-HOg

En fait le fond du problème c'est de répertorier tous les entiers naturels (N*) qu'on ne peut pas diviser (et on exclut immédiatement 1 et le nombre lui-même des diviseurs puisque tous les entiers naturels sont forcément divisibles par ces deux nombres).

Et ça rejoint la définition que je donne plus haut : trouver un diviseur à un entier naturel revient à trouver un nombre qui permet de diviser la quantité physique dont on dispose en parts égales.
6 a comme diviseurs 2 et 3 car on peut diviser 6 pommes en 2 x 3 pommes ou 3 x 2 pommes.
Ce n'est donc pas un nombre premier.

Et encore une fois puisqu'on ne peut pas diviser 1 en parts égales, il n'y a aucune raison de l'exclure des nombres premiers.
Répondre
#3
Continuons avec ces passionnants nombres premiers Smile

La caractéristique d'un nombre qui n'est pas premier est d'être divisible par un nombre qui n'est ni 1 ni lui-même. Cela revient à dire qu'un nombre qui n'est pas premier est forcément le multiple d'un nombre premier. En effet si un nombre est le multiple d'un nombre non premier, on pourra à nouveau diviser ce nombre jusqu'à tomber sur un nombre premier. Par exemple 16 est divisible par 4, ce qui donne 4 qui n'est pas premier mais qui peut être divisé par 2 et au final 16 est divisible par 8 ce qui donne 2 un nombre premier.

En fait un nombre est au moins le multiple d'un nombre premier, par exemple 6 est le multiple de 2 (3 x 2) et de 3 (2 x 3). En mathématiques on pousse la logique jusqu'à la décomposition en facteurs premiers, mais je n'aborderai pas ce théorème fondamental de l'arithmétique pour l'instant.

Mais alors puisqu'un nombre non premier est au moins le multiple d'un nombre premier, ça voudrait dire qu'en prenant la liste des nombres premiers on va progressivement couvrir l'ensemble des entiers naturels. Et ils porteront alors bien leur dénomination de "premiers" puisque suffisants à eux seuls à générer tous les nombres.

Et c'est malheureusement ici qu'on retombe sur le problème de la mise à l'écart du nombre 1 : en s'appuyant sur tous les nombres premiers définis mathématiquement {2, 3, 5, ...} on ne peut générer au mieux que N* - {1} ! C'est pas beau Confused

Examinons maintenant le crible d'Ératosthène :
https://fr.wikipedia.org/wiki/Crible_d%2...th%C3%A8ne

C'est un procédé qui permet d'isoler tous les nombres premiers jusqu'à un entier N (ci-dessous N = 120) :

[Image: 440px-New_Animation_Sieve_of_Eratosthenes.gif]

Le raisonnement est simple : on commence par virer 1 "parce que" et on élimine ensuite tous les multiples des nombres premiers, il ne reste alors que les nombres premiers.
Soit 25 nombres premiers en prenant N = 100.

Mais encore une fois pourquoi virer 1 ?

Dans le tableau on ne vire pas les multiples unitaires des nombres : 1 x 1 = 1, 2 x 1 = 2, 3 x 1 = 3, 4 x 1 = 4, etc. tout simplement parce que le postulat de base est de ne pas tenir compte du nombre 1 dans les diviseurs d'un nombre.

De la même façon on ne vire pas les multiples de 1 : 1 x 1 = 1, 1 x 2 = 2, 1 x 3 = 3, 1 x 4 = 4, etc. parce que le postulat de base est aussi de ne pas tenir compte du nombre lui-même dans les diviseurs d'un nombre.

 A partir de là le déroulé est logique : on commence par prendre 2 x 2 et on continue toute la liste des multiples suivants.

Il reste ainsi 26 éléments dans le tableau :

   

C'est élégant pour 2 raisons :

1) Avec ces nombres premiers on peut au moins générer tous les nombres de 1 à 100, donc les nombres premiers portent bien leur nom puisqu'avec seulement l'ensemble des nombres premiers on peut générer N*.

2) Ça offre un moyen de mémorisation aisé, puisqu'il y a autant de nombres premiers dans les 100 premiers entiers naturels que de lettres dans l'alphabet.

053
Répondre
#4
Voici la fonction (PHP) que j'ai retenue pour tester un nombre premier :

function premier($n) {
    for ($i = 2 ; $i <= sqrt($n) ; $i++) {
        if ($n % $i == 0) return false;
    }
    return true;
}

Un bon compromis entre facilité de compréhension et rapidité d'exécution Smile
Et qui bien sûr confirme 1 comme nombre premier, pas besoin d'ajouter une vilaine exception ^^

Explication

Un nombre n qui a un diviseur i peut s'écrire n = a * i (où a est un autre diviseur).
On peut donc écrire a <= √n ou (non exclusif) i <= √n.
Autrement dit en scannant tous les entiers de 2 à √n on tombera forcément sur un diviseur si n n'est pas premier.

On commence par scanner 2 puisque ça teste d'un coup tous les nombres pairs (la moitié de N* rien que ça !).
Puis 3, 4, 5, ... si nécessaire en finissant par les diviseurs les moins probables.

009
Répondre
#5
Voici l'algorithme (PHP) du crible d'Ératosthène.

On considère un intervalle [m, n] et on élimine progressivement tous les multiples présents, de sorte qu'à la fin il ne reste que les nombres premiers, ce qui permet en même temps de connaître leur nombre dans cet intervalle.

D'abord on remplit un tableau associatif (une clé = un nombre) avec tous les entiers présents dans l'intervalle [m, n] (aucune difficulté) :

$m = 1;
$n = 1000;
$tab = array();
for ($i = $m ; $i <= $n ; $i++) {
    $tab[$i] = 'on';
}

L'algorithme :

for ($i = 2 ; $i <= sqrt($n) ; $i++) {
    for ($j = $i * ceil($m / $i) ; $j <= $n ; $j+= $i) {
        if ($j > $i) unset($tab[$j]);
    }
}

Même principe que pour la fonction servant à tester un nombre premier, on parcourt les entiers de 2 à √n maximum.
Ensuite on se place sur le premier multiple de i >= m, et on parcourt tous les multiples jusqu'à n maximum, en ajoutant i à chaque itération.
Enfin on sort le multiple du tableau, en prenant la précaution de ne pas sortir le nombre premier servant au calcul des multiples.

A la fin, il ne reste dans le tableau que les clés correspondant aux nombres premiers, et leur nombre est donné par le nombre de clés.


Remarque

Idéalement il ne faudrait traiter que les nombres premiers, il ne sert par exemple à rien de considérer les multiples de 4 qui sont inclus dans les multiples de 2 (ainsi que tous les multiples des nombres pairs situés après 4). Mais voilà il est incorrect de se servir des nombres premiers dans un algorithme servant à les déterminer ! ^^

Une autre solution consiste à stocker tous les multiples dans un autre tableau associatif au fur et à mesure de leur traitement, et à ne pas rentrer dans l'itération si i est présent dans ce tableau.

J'ai fait un test de performance sur ma machine et PHP 5.6 (qui est nettement moins rapide que PHP 7), il faut environ 8,25 s pour trouver les nombres premiers dans l'intervalle [1, 1 000 000]. Avec l'algorithme optimisé on arrive à environ à 7,1 s, l'avantage n'est donc pas flagrant. En fait le temps de calcul économisé est en partie perdu à lire le tableau contenant les multiples déjà traités.


Répartition

L'étude de la répartition des nombres premiers est vraiment passionnante aussi car il n'existe pas à ce jour une fonction mathématique donnant le nombre exact de nombres premiers dans un intervalle donné, ce ne sont que des formules approchées (qui fonctionnent d'autant mieux que les nombres considérés sont grands).
Répondre
#6
Rang des nombres premiers

Les nombres premiers mathématiques sont p = 2, 3, 5, 7, 11, 13, 17, 19, etc.
Les rangs de ces nombres sont n = 1, 2, 3, 4, 5, 6, 7, 8, etc.

2   3   5   7   11   13   17   19
1   2   3   4    5    6    7    8

Il existe des formules mathématiques numériques qui donnent un bornage de p en fonction de n :
https://fr.wikipedia.org/wiki/Fonction_z..._de_rang_n

Et ça fonctionne bien, par exemple si on prend n = 50, on a :

50 * (ln 50 + ln ln 50 - 1) < p < 50 * (ln 50 + ln ln 50 - 1/2)
213,8 < p < 238,8

Comme on sait que tous les nombres premiers > 2 sont impairs on peut facilement écrire :
215 <= p <= 237

Et effectivement le 50ème nombre premier c'est 229.

C'est magnifique, mais ça me pose encore et toujours un problème. Imaginons qu'on soit dans un univers où il n'existe pas de diviseurs, juste 1 et le nombre lui-même, on écrirait alors la liste des nombres premiers de cette façon :

1   2   3   4   5   6   7   8
1   2   3   4   5   6   7   8

Mais bien sûr dans notre univers les diviseurs existent, et ils viennent donc occuper des places qui ne sont plus disponibles pour les nombres premiers.
Mais même dans ce cas le départ devrait être le même puisque le premier diviseur a intervenir est le 4 (2 * 2).

J'écrirai donc les nombres premiers et leurs rangs de cette façon :

1   2   3   5   7   11   13   17   19
1   2   3   4   5    6    7    8    9

Il y a quelque chose d'intéressant ici : les formules mathématiques numériques échouent à donner un bornage pour 1 (ln 0 n'existe pas), et peinent à donner un bornage précis pour les premiers nombres (raison pour laquelle la valeur supérieure du bornage démarre à n = 20), alors qu'en fait le démarrage a une solution basique :

1   2   3
1   2   3

p = n tout simplement Smile

Ensuite les multiples entrent en scène, et repoussent de plus en plus loin la valeur d'un nombre premier pour un rang donné, mais avec une influence de moins en moins marquée (*), sinon il finirait par ne plus y avoir de places ^^

Le comportement de la fonction p = f(n) est proche de p = n quand n s'approche de 1, va tendre vers l'infini quand n va tendre vers l'infini et va augmenter plus rapidement que p = n. C'est cet écart qu'il faut arriver à évaluer le plus précisément possible.

(*) C'est facile à démontrer :
Si on tenait compte des multiples de 1 on éliminerait tous les nombres => influence de 100%.
En tenant compte de tous les multiples de 2 on élimine tous les nombres pairs => influence de 50%.
Avec les multiples de 3 on élimine un nombre sur trois => influence de 33,33%.
Et ainsi de suite...
Donc globalement l'influence d'un nombre premier p c'est (100 / p) % (**), alors si p devient très grand son influence devient très petite, par exemple avec p = 997 on est presque déjà descendu à 0,1%.

(**) En théorie il faudrait aussi tenir compte de son rang, il est bien évident que le nombre 997 n'exerce aucune influence dans l'intervalle [1, 100].
Répondre
#7
Le Graal pour les nombres premiers serait d'aboutir à une fonction analytique p = f(n) donnant la valeur d'un nombre premier en fonction de son rang parmi les nombres premiers (de 1 à l'infini théorique). Il y a bien la fonction zêta de Riemann rappelée par notre Gollum savoyard, mais elle ne donne pas la valeur d'un nombre premier en fonction de son rang, ou alors il faut que quelqu'un m'explique comment (je sais juste que d'un point de vue théorique les nombres premiers sont les racines de la fonction).

p = f(n)

On peut écrire :
p = n + nb positions consécutives dans N* éliminées à partir de n par les nombres premiers précédents.

Exemple : n = 4 :
1) Position 4 éliminée par 2 : 2 x 2.
p = 4 + 1 = 5.

Exemple : n = 5 :
1) Position 5 éliminée par 5 lui-même (f(4) = 5, nombre premier immédiatement précédent).
2) Position 6 éliminée par 2 et 3 : 3 x 2 et 2 x 3.
p = 5 + 2 = 7.

Exemple : n = 6 :
1) Position 6 éliminée par 2 et 3 : 3 x 2 et 2 x 3.
2) Position 7 éliminée par 7 lui-même (f(5) = 7, nombre premier immédiatement précédent).
3) Position 8 éliminée par 2 : 4 x 2.
4) Position 9 éliminée par 3 : 3 x 3.
5) Position 10 éliminée par 2 et 5 : 5 x 2 et 2 x 5.
p = 6 + 5 = 11.

On pose :
g(n) = nb positions consécutives dans N* éliminées à partir de n par les nombres premiers précédents.

On a alors :
p = n + g(n)

Soit :
(p / n) = 1 + (g(n) / n)

L'étude du problème revient alors à trouver la forme analytique de g(n).

On va sans dire me dire que c'est nul comme approche du problème, puisque pour connaître le nombre premier p à un rang n, on doit se servir des nombres premiers précédents ! C'est vrai, à ceci près qu'on peut exprimer g(n) en fonction de g(n - 1), et ainsi de proche en proche jusqu'à 1. Autrement dit on peut arriver à calculer g(n) sans la connaissance des nombres premiers précédents, simplement en connaissant leur influence.

Bon ben je suis pas dans la merde maintenant 015
Répondre
#8
En fait g(n) peut être exprimée de façon plus élégante : elle mesure l'écart entier entre le rang d'un nombre premier et sa position normale dans N*.

Par exemple si on reprend les 3 exemples plus haut :

Au rang n = 4 on trouve le nombre premier p = 5 : g(4) = 1.
Au rang n = 5 on trouve le nombre premier p = 7 : g(5) = 2.
Au rang n = 6 on trouve le nombre premier p = 11 : g(6) = 5.

g(1) = 0, g(2) = 0, g(3) = 0, g(4) = 1, g(5) = 2, g(6) = 5, etc.

A ne pas confondre avec l'écart entre les nombres premiers qui permet de définir les nombres premiers jumeaux, cousins et autres : 1, 1, 2, 2, 4, 2, etc.

Il ne reste plus qu'à regarder quelle tronche elle a et ce qu'on peut en faire Angel
Répondre
#9
Une vidéo vraiment très intéressante sur l'Hypothèse de Riemann :
https://www.youtube.com/watch?v=KvculWl-jhE&vl=fr

On comprend mieux le fonctionnement de cette mystérieuse fonction zêta et l'apport d'Euler dans tout ça.
Mais ça ne donne toujours pas la fameuse fonction p = f(n) 103
Répondre
#10
Hou tu te déchaînes Zarkos sur les nombres premiers ! pour rire, vu sur WIKI, le plus grand nombre premier connu est : "Le record du plus grand nombre premier connu a presque toujours été trouvé parmi les nombres de Mersenne, comme le dernier en date, M82589933 = 2 puissance 82 589 933 – 1, un nombre ayant 24 862 048 chiffres décimaux."
LOL comment c'est grand, pour écrire ce nombre il faut 5000 pages de papier A4 écrit petit ! Et ce n'est qu'une petite idée de la grandeur de l'infini...

A propos du zéro, ce nombre (s'il est un nombre) est particulier, et il est apparu en numérotation arabe, je pense qu'il n'existait pas en numérotation romaine. En effet que signifie Zéro ? Rien ? Non Zéro c'est Zéro et Rien c'est Rien.
Une boite peut contenir un stylo. si on compte le nombre de billes dans la boite c'est Zéro, pourtant il n'y a pas rien dans la boite.
Zéro désigne donc zéro quelque chose, zéro désigne de quel quelque chose on parle pour expliquer qu'il n'y en a pas.

J'enfonce sans doute une porte ouverte, mais je trouve sympa que le Zéro indique de quel quelque chose on parle, et non le Rien

Ou en d'autre termes Zéro, c'est déjà quelque chose !
Répondre


Atteindre :