LES NOMBRES PREMIERS :
LA BASE PRIMALE :
Introduction :
Tout le monde connaît maintenant la décomposition d'un nombre entier en facteurs premiers.
Ainsi, chaque nombre peut se mettre sous la forme
X = 1^a x 2^b x 3^c x 5^d x...(X, a, b, c, d) appartenant à N
exemple :
6 = 1^6 x 2^1 x 3^1 x 5^0
Les facteurs premiers ne changeant pas, il est possible d'établir la table des puissances
de ces facteurs en fonction des nombres entrés. On obtient alors :
2^a 3^b 5^c 7^d 11^e ...
0 0 0 0 0 ... 0
1 0 0 0 0 ... 0
2 1 0 0 0 ... 0
3 0 1 0 0 ... 0 Elle est infinie
4 2 0 0 0 ... 0 comme chacun sait
5 0 0 1 0 ... 0 puisque N est infini
6 1 1 0 0 ... 0
7 0 0 0 1 ... 0
Il est donc possible de construire un tableau en aveugle basé sur un simple
comptage en verticalet qui nous fournit :
- les nombres premiers, chaque fois que l'on a besoin d'introduire une colonne
- les facteurs du nombre représentant la ligne au niveau des croix situées sur
l'horizontale
N 1 2 3 5 7 11 13 ... 17
1 1 0 0 0 0 0 0
2 2 x 0 0 0 0 0
3 3 0 x 0 0 0 0
4 4 x 0 0 0 0 0
5 5 0 0 x 0 0 0
6 6 x x 0 0 0 0
7 7 0 0 0 x 0 0
8 8 x 0 0 0 0 0
9 9 0 x 0 0 0 0
10 10 x 0 x 0 0 0
11 11 0 0 0 0 x 0
12 12 x x 0 0 0 0
13 13 0 0 0 0 0 1
14 14 x 0 0 x 0 0
15 15 0 x x 0 0 0
16 16 x 0 0 0 0 0
17 17 0 0 0 0 0 0
Interprétation :
Tout ceci ne serait qu'une astuce de plus pour optimiser un n ième
algorithme si cela n'avait un sens ou des sens profonds dont j'aimerais
vous aider à tisser des liens avec vos propres connaissances. A ce jour
cette procédure n'a pas été lue ni dans " the art of programming " de
D.E. Knuth, ni dans l'histoire des algorithmes de Chabert, ni dans le
que sais-je de Tenenbaum. Est-elle orignale ?
T) on remarque donc que pour connaître avec cette méthode le n ième
nombre premier, il faut connaître les précédents et notamment, il est
impératif de connaître le premier : 1
I) on remarque que les fréquences des croix verticalement sont des
constantes
X) on remarque que la synthèse de ces fréquences stables et constantes
engendrent une suite de nombres que d'aucun ont déjà qualifiée de
capricieuse* (non régulière), chaotique !
Et oui, le mot est lâché. La suite des nombres premiers est chaotique.
Pour la produire, il faut donc connaître les conditions initiales très
précisément ainsi que la nature des signaux périodiques qui la constitue.
Le simple engendre le complexe comme s'il fallait un exemple de plus
pour vérifier cet adage.
Mais, ce n'est pas tout ! Cette façon de coder est un isomorphisme du
codage logarithmique des nombres sauf que l'abaque des logarithmes est
autrement plus compliqué à construire que cette manière de construire
les tableaux précédemment évoquée !
I2) Ainsi, si l'on adopte la notation 'Y (prononcé tixe de Y) pour
le codage du nombre entier Y dans ce que j'appellerais maintenant la
base primale, cela donne par exemple :
1 = '0
2 = '1
3 = '10
4 = '2
5 = '100
Pour les puissances supérieures à 9 on écrira la puissance verticalement :
'21 = 2^13 * 3^3
3
Vous remarquerez que maintenant, la suite des nombres premiers a été
inversée :
de 1, 3, 5, 7, 11, ... je pose dorénavant 11, 7, 5, 3, 2.
Il faut également remarquer que la première colonne qui n'est autre que
l'ensemble N s'avère inutile et même nuisible à l'arithmétique de cette
base primale.
Evaluations préliminaires :
Mais est-ce que ce type d'idée peut rendre service aux mathématiques
appliquées ?Il semble que peu de personnes cherchent ainsi à produire
le début exhaustif de la suite infinie des nombres premiers. Il est
vrai que l'on tombe vite sur les problèmes de capacités de calculs
(temps de calcul ) ou de mémoire des machines modernes ! Mais faut-il
pour cela abandonner ce type de recherche ? Il y seulement 10 ans
1 giga octet paraissait fabuleux, aujourd'hui n'importe quel PC de
moins de 4000,.00 francs les a en disque dur !
Faut-il rappeler en matière d'intégration électronique, la loi de
Moore qui se vérifie encore : l'intégration des transistors sur une
puce électronique double tous les deux ans ! Alors pourquoi ne pas
réver un peu !
Du côté de la mémoire :
Combien de place mémoire nécessiterait un tableau de valeur binaire tels
que ceux dont j'explicitais plus haut la nature ?
Pour le tableau ayant 3 colonnes : 2, 3, 5 et pouvant servir l'excursion
des nombres entiers , par exemple, allant jusqu'à 10, il faudrait très
exactement 30 bits pour le mémoriser.
Il existe une évaluation du nombre de nombres premiers en fonction d'un
nombre qui est rappelée dans le magazine la recherche n°278 1995 volume
26 p 763 et qui a la forme :
x / Ln x appelée p(x)
La capacité mémoire demandée pour mémoriser une table allant jusqu'au
nombre X et énumérant tous les nombres premiers des nombres compris entre
1 et X et les facteurs des nombres compris entre 1 et X est donc donné par
la formule :2*X / Ln X
Pour un cas d'espèce de :
trouver tous les nombres premiers jusqu'à 1000 la capacité mémoire
demandée sera de 2*1000^2 / Ln 1000 = 289530 bits soit 290 Kb ou encore
pour les fanas des PC : 38 Ko
Par contre, pour aller jusqu'à 10^17 cela donne une mémoire de
6,3 10^28 Ko !! ce qui au jour d'aujourd'hui est trop demander à
l'électronique !
Du côté du comptage :
En fait les " 0 " et les " * " des tableau sont binaires et périodiques,
ils ont donc des fréquences de travail.
Pour explorer tous les nombres premiers jusqu 'à 17 j'ai besoin de 7
colonnes à mon tableau donc de 7 fréquences différentes pour générer
les " 0 " et les " * " .Un signal fréquenciel généré en électronique
nécessite un compteur qui est une brique de base parmis les composants
électronique existant à l'heure actuel. Pour explorer tous les nombres
premiers jusqu 'à 17 j'ai donc besoin de 7 compteursPour explorer tous
les nombres premiers jusqu 'à 19 j'ai donc besoin de 8 compteurs...
Pour explorer tous les nombres premiers jusqu 'à X j'ai donc besoin
de X / Ln X compteurs
Ainsi pour aller jusqu'à 10^10 il faudrait connecter jusqu'à
434 294 482 soit environ 434 puces électroniques de 1 million de
compteurs chacune ! Ce nombre peut vous paraître grand mais n'importe
quel Pentium ou power ... nécessite pour sa construction 4 à 5 millions
de transistors, un compteur étant fabriqué qu'avec quelques transistors,
le jeu parait en valoir la chandelle. Quant au nombres de puces à
connecter je me souviens avoir travaillé sur des ordinateurs (pas des PC,
de vrais ordinateurs !) ayant beaucoup plus de puces que cela !
On nous parle souvent de Kro ! et de son zin (cf virus info). Mais
unix existe même sur un PC, que se soit sous la forme de linux ou qnx,
ou ...Et unix a la possibilité de clusteriser (clustering) des machines
bas de gamme (pc ou appleoou ...) et de créer ainsi une machine virtuelle
à traitement de tâches et d'instruction parallèle. Quelques centaines de
PC 8086 seront bien suffisants pour créer à toute vitesse des fréquences
stables de zero et de un !
Il faudra programmer en langage de programmation gérant le mode d'exécution
parallèle et/ou en machine d'état (chaque machine générant une suite de
fréquence de rapports cycliques respectivement ½ 1/3 1/5 1/7 1/11, ...
La machine de contrôle effectuant le test de primalité qui n'est autre
qu'un test booléen.
Ca promet !
Alors pourquoi pas ?
Peut-être pas aujourd'hui mais demain cela peut paraître envisageable,
que diable !