A propos de nombres premiers

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: A propos de nombres premiers

Message par Zorro »

@fweil :

tu fais comment pour faire tourner ton code ?

moi j'ai une erreur sur la ligne :

Code : Tout sélectionner

For i.q = 1 To nTimes
'For' ne supporte pas les variables de type 'quad'.
ton code (le dernier posté avant ce message) ne tourne pas en Pb 5.50 !
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
Micoute
Messages : 2522
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: A propos de nombres premiers

Message par Micoute »

Code : Tout sélectionner

;For i.q = 1 To nTimes

nTimes = 10000000
i.q = 1

While i < nTimes
  i + 1
Wend

Debug i
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 5.73 PB 6.00 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: A propos de nombres premiers

Message par Ollivier »

@Zorro

Teste avec une installation PB x64 si tu veux exécuter le code.
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: A propos de nombres premiers

Message par Zorro »

arf .. oui bien sur , merci
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Re: A propos de nombres premiers

Message par fweil »

Ah ba oui, j'avais pas dit, je fais tout en x64, alors si on veut faire tourner sur x86, il faut juste reprendre certain trucs, dont le fameux For / Next qui supporte pas qu'on l'embête.

Sur AVX, j'ai beau triturer ça dans tous les sens, j'arrive à sortir des vecteurs 4 x doubles qui contiennent le résultat de la division entière par ce que je veux, mais pour tester le pack, j'arrive pas à dire pour l'instant :

- trouve si il y a double à zéro dans le pack
- sors le produit des atomes du pack pour voir si ça fait zéro

(c'est les deux façons de dire la même chose, sauf que la seconde est plus lente mais si on pas le ouache, ça pourrait le faire, sauf que ça le fait pas si je sais pas le faire et que si t'as besoin de rien t'es tout de suite servi).

Donc je bute, provisoirement, mais ça va finir par y aller. Mais ... mais ... dans l'immédiat, j'ai déjà compris que je vais pas arriver à aller plus vite sur cette voie là. Sauf si en y repensant un moment je trouve mieux, la vectorisation ne sera pas plus rapide que la mise en application d'un crible comme celui que j'ai mis au point. A comparer des séries de déplacements de pointeurs avec tout ce qu'on veut, ben déplacer des pointeurs c'est quand même hyper rapide.

Bon je me concentre pour essayer de pouvoir me contredire.
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: A propos de nombres premiers

Message par Ollivier »

Quand tu fais la somme de tes gaps pré-calculés, quel résultats tu obtiens ? (Exemple : dans "Exzel" c'est 6, car tu as TestPrime5(2 <<<<<) et TestPrime5(4 <<<<<<) et donc 2 + 4 = 6)
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: A propos de nombres premiers

Message par Ar-S »

L'exemple graphique est sympa merci.
j'ai lu sur wikipedia ce que c'était mais j'aimerai tout de même comprendre les applicatifs possibles.
Concrètement ça vous sert à quoi.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: A propos de nombres premiers

Message par Ollivier »

@Ar-S

Si tu as un chat inconnu au bataillon qui semble s'être coincé sur une gouttière chez toi, et que tu fabriques une échelle pour mettre ce chat sur la terre ferme. Ce chat, une fois posée au sol, il s'enfuit. Résultat, excepté un très faible risque de sentir la charpille pourrie, s'il était resté condamné là, ça ne t'a quasi-strictement servi à rien de t'en occuper. Par contre, désormais, tu disposes d'une échelle pour faire des choses plus utiles : réparer une fuite, repeindre un volet, etc...

Je crois que l'utilité de l'étude des nombres premiers, c'est un peu pareil. L'utilité n'est pas dans le but peu probable, mais dans la création des moyens pour y parvenir.
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Re: A propos de nombres premiers

Message par fweil »

Il y a une chose qui tarabuste les gens qui sont fadas de nombres, c'est que toute chose découle des nombres entiers, et que tous les nombres entiers découlent des nombres premiers qui en font partie.

L'étude des nombres premiers est un peu comme la quête que l'on peut faire pour savoir répondre aux grandes questions existentielles : où vais-je ? où cours-je et dans quel état j'ère ? D'où venons-nous et pourquoi ?

Tout le monde ne goûte pas la poésie des nombres, en tout cas pas de la même manière, mais il y a quelque chose de constant chez ceux qui les aiment assez, savoir décrire les choses, celles qui nous entourent, celles qu'on ne voit pas, avec des nombres, agencés en partitions variées et parfois compliquées, parfois faciles à comprendre, parfois tout simplement superbes parce qu'elles sont simples.

L'étude des nombres premiers confrontent ceux qui s'y adonnent à l'infini, à l'infini dans l'infini, et à ces choses qu'on devine sans arriver à les démontrer parce que la magie des nombres est portée dans cette discrète pudeur qu'ils ont à exister, à être bien utiles, mais à ne pas nous permettre d'en comprendre toute l'essence.

Comment les nombres premiers peuvent-ils permettre à tous les autres d'exister ? Pourquoi ne sont-ils pas prévisibles lorsqu'on les cherche ? Combien y en a t-il qui ont telle forme ou telle autre ? Et combien de temps faut-il pour démontrer qu'un nombre est premier ? Comment doit-on s'y prendre ?

Au cours de l'histoire humaine (l'Histoire qui correspond en gros à la période qui s'écoule depuis qu'on conserve des traces écrites de nos élucubrations), pas mal de gens ont cogité à tout cela en apportant des réponses plus ou moins utiles, plus ou moins précises.

Pour ma part, le travail auquel je contribue consiste à affiner quelques hypothèses pour des mathématiciens sur la nature des nombres premiers parmi les nombres entiers, en ce qu'ils sont distribués de telle sorte qu'on en prévoit aujourd'hui à peu près la quantité (combien de nombres premiers se trouvent entre truc et bidule), mais qu'on est encore relativement peu capables d'en prédire la place (quels nombres sont premiers entre truc et dudule).

En gros, on a des systèmes et des formules qui permettent de dire pour une partie des nombres qu'ils n'ont aucune chance d'être premiers, ou au contraire que ça vaut peut-être le coup de calculer si ils le sont.

Le crible d'Erathostène, par exemple, n'est pas une méthode transcendante pour vérifier qu'un nombre quelconque est premier, mais c'est en quelque sorte la meilleure approche pour le vérifier.

Ceci étant posé, les nombres premiers ensuite nous servent à pas mal de choses qui nous échappent souvent dans le tumulte du quotidien. Il fut un temps où les humains ne connaissaient pas les nombres réels, et ils utilisaient les nombres entiers seulement. Pour trouver de justes mesures à un certain nombre de choses, ils utilisaient les quotients (divisions) entre nombres premiers.

Lorsqu'un quotient est fait entre deux nombres, il a le plus souvent pour résultat une partie entière, et un reste, que l'on peut représenter aussi comme la partie décimale de la division (c'est ce qui permettra aux humains d'invinter les nombres réels).

La connaissance des nombres premiers conduit à comprendre que les autres nombres peuvent être formulés à partir de ceux-ci. Ces autres nombres sont des nombres composites.

Cette connaissance, souvent intuitive, permet de faire fonctionner beaucoup de choses dans nos vies quotidiennes.

On multiplie et on divise les choses à l'envie pour faire toutes sortes d'objets ou de raisonnements, et quand ça tombe pas juste, ça peut poser des questions, ou des problèmes. Les nombres entiers, les quotients, et le reste des divisions entières sert à tout ça. C'est aussi bien ce qui permet de fabriquer un plat pour le repas à servir à 3 personnes, que pour dessiner puis construire une horloge ou un moteur à explosion.

A partir de là, on comprend bien qu'il n'est peut-être pas nécessaire d'en savoir plus sur quelque chose qui nous rend déjà service, mais on peut aussi comprendre facilement que si on on savait plus on se faciliterait peut-être la vie dans certains cas.

Le projet sur lequel je planche ici, aussi ésotérique qu'il puisse paraître, consiste à déterminer quelle est la nature mathématique de la courbe des écarts entre nombres premiers, ce qui permettrait d'en reformuler mieux la distribution. C'est à dire, indirectement, de proposer une piste, ou mieux encore, une nouvelle formule, permettant d'améliorer la prédiction de primalité d'un nombre (je n'imagine pas dans l'immédiat que l'on puisse prédire exactement qu'un nombre quelconque soit premier, dans la mesure où toutes les méthodes connues qui permettraient de le faire mettent en jeu des séries de calculs qui tendent vers l'infini quand les nombres eux-mêmes tendent vers l'infini.).

Ce point est important pour quelques personnes, en recherche appliquée, parce qu'on utilise les nombres permiers dans un certain nombre d'application de traitement de données ou il est toujours pratique de prédire la primalité d'un nombre en un temps record par exemple (et ce nombre pouvant être assez grand on peut préférer calculer sa primalité plutôt que de stocker tous les nombres premiers possibles et immaginables et chercher si le nombre qu'on regarde en fait partie).

Voilà un peu l'essence de la chose sur laquelle on pourrait en dire encore tant, mais je ne voudrais pas devenir chiant. C'est en en sciant que Léonard devint scie comme on dit dans mon Auvergne natale (avec l'accent, essayez, vous comprendrez).
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: A propos de nombres premiers

Message par djes »

Je ne sais pas si je dois te remercier, car même si tu partages avec talent et enthousiasme ta passion, ce type de problème m'embarrasse l'esprit au point que je prends souvent des chemins d'évitement ! Là, impossible de passer à côté, et j'ai encore passé deux heures ce matin à cogiter...

Allez, je te remercie quand même, car c'est passionnant, et très agréable à suivre à ce niveau ;-)
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: A propos de nombres premiers

Message par Zorro »

exemple concret de l'utilité des nombres premier
la cryptographie !

exemple le systeme RSA :
voici l'algo :

source : https://sciencetonnante.wordpress.com/2 ... -premiers/
Pour aller plus loin : le détail de l’algorithme RSA

Choisissez deux nombres premiers P et Q (que vous gardez pour vous), prenons par exemple P=5 et Q=11.

Fabriquez le produit des deux N=P.Q, dans notre cas N=55.

Choisissez un nombre E n’ayant pas de facteur premier commun avec (P-1).(Q-1) Dans notre cas puisque (P-1).(Q-1) = 40 = 2*2*2*5, on peut choisir par exemple E = 7.

La paire (E,N) constitue la clé publique, que vous donnez à votre ambassadeur

Choisissez ensuite un nombre D tel E.D mod (P-1).(Q-1) = 1 par exemple dans notre cas D = 23 fait l’affaire car 7*23 mod 40 = 1

La paire (D,N) constitue la clé privée, que surtout vous gardez pour vous.

Comment se passe la procédure d’encodage ? Tout d’abord il vous faut ramener votre message à un nombre. Vous pouvez le faire par le moyen que vous voulez comme A=01 ; B=02 ; … ;Z =26 par exemple. Une fois votre message traduit sous la forme d’un nombre M, vous allez encoder ce nombre avec la clé publique (E,N) de la manière suivante :

C = M^E modulo N

Pour décoder C (et donc retrouver M), il vous faut appliquer une opération différente, utilisant la clé privée (D,N) :

C^D modulo N.

Et c’est là que les maths des nombres premiers nous sont utiles, car elles permettent de prouver que ça marche c’est-à-dire que l’opération de décodage permet effectivement bien de retrouver le message M initial. On peut en effet démontrer que :

(M^E modulo N)^D modulo N = M
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Re: A propos de nombres premiers

Message par fweil »

Je tiens à souligner que la cryptographie basée sur les nombres premiers utilise fréquemment et subséquemment les lettres P et Q pour exprimer une certaine forme de raisonnement, mais ce n'est pas une raison pour en déduire que c'est un truc de ... euh

Donc et effectivement l'une des applications immatérielles des nombres permiers est la cryptographie pour la bonne raison que ça rend le décryptage plus compliqué. On pensait que cela rendait même improbable les techniques de décryptage, mais on s'aperçoit que ce n'est pas le cas si un système est rendu apte à tenter toutes les combinaisons possibles de constructions de clefs à base de nombres premiers, etc, etc ... bon ça reste un travail compliqué, et pas nécessairement très utile.

En tout cas la nature apporte parfois des sujets de réflexion suprenants. Les oiseaux ont des cycles de reproduction réguliers. Les cigales ont un cycle de reproduction dont on observe qu'il répond à une logique basée sur des nombres premiers. Pourquoi ? Apparemment pour qu'en moyenne les oiseaux ne se mettent pas à avoir besoin de bouffer la cigale quand celle-ci est fragilisée par sa période de reproduction. C'est une observation qui a été notée par des gens qui se sont intéressés à la question. Il leur semble donc que l'utilisation des nombres permiers soit quelque chose de particulièrement ancré dans la nature. Je ne sais pas dans le fond si on doit donner un crédit absolu à cela, mais l'observation coïncide avec la conclusion.

Pour en revenir à la cryptographie ... quel est l'intérêt de calculer très vite des nombres premiers, si possible assez grands ?

Puisqu'il est plus ou moins possible de décrypter des données codées à partir de clefs basées sur des nombres premiers d'une grandeur connue (en gros les permiers utilisés dans les algorithmes de criptographie 'usuels' sont assez petits), si des cryptographes disposent d'une capacité à produire des nombres premiers plus grands, ils se mettent à l'abri des décrypteurs (pour un temps au moins). L'utilité de calculer de grands nombres premiers, dans des plages numériques inexplorées, ou peu explorées intéresse un certain nombre de gens effectivement. Dans la foulée, les mêmes ou d'autres s'intéresse aussi à la possibilité de trouver les mêmes plus grands nombres premiers assez vite pour mettre les décrypteurs à la hauteur des crypteurs.

On en sortira donc jamais !

Bon, tout ça n'arrange pas beaucoup les choses du plancher des vaches.

Moi ce qui m'intéresse sur cette étape de cogitation, c'est de dire que le crible d'Erathostène est peut-être peu performant, en apparence, mais si on sait programmer, il a encore bien des services à rendre. La raison pour laquelle cela m'amuse bien, c'est qu'on peut en profiter pour apprendre à tirer le meilleur parti possible de ces petites bêtes à pattes que sont les microprocesseurs.
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: A propos de nombres premiers

Message par Zorro »

pour la liaison que tu fait des nombres premier et de la nature
je serai bien plus enclin a penser que la suite de fibonacci
est bien plus parlante que les nombres premiers (dont certains font probablement partie de cette suite ) :)

http://www.purebasic.fr/french/viewtopi ... =6&t=16319


voir les images tirée de la suite :
http://jm.davalan.org/divers/fibonacci/f09.html
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: A propos de nombres premiers

Message par djes »

C'est marrant que tu parles de ça parce que justement, mes petites cogitations d'hier faisaient le lien entre les deux ! :P
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: A propos de nombres premiers

Message par Ollivier »

@Zorro

Pour le cryptage RSA, je ne pense pas que ce sujet ait une utilité dans le domaine : fweil a indiqué 10^15 en réseau. Si balayer tout ce domaine, c'était monter sur une échelle jusqu'à une gouttière du 1er, les banques ont depuis longtemps dépassé la Lune pour protéger leurs transactions !!!

Les symboles sans leurs mesures, conduisent à préjuger, et donc à marcher sur la tête.

La place majeures des nombres premiers, se situent entre les mesures d'angles et les mesures de longueurs, et "parallèle" à la trigo (si ce n'est que la trigo est créée à partir de la mécanique des nombres premiers via les racines).

On retrouve aussi les gaps (différences entre deux nombres premiers voisins) à l'échelle des foyers des microscopes à balayage (grossissement *300 000) là où les électrons trahissent les contraintes spatiales qui semblent les gouverner, tel un crénelage à l'instar d'une molette de souris.

Evidemment, un mathématicien ou un physicien peut me contredire sur mes dires. Parfois, avoir tort, c'est le plaisir d'être enrichi.
Répondre