Vous n'êtes pas identifié.
Pages: 1 2
Au cas où vous ne le sauriez pas, le laboratoire le plus avancé en matière de recherche mathématique est situé en Inde et ce sont donc les Indiens les meilleurs dans le domaine.
La toute dernière découverte qui date de moins d'un an est un calcul qui permet à partir d'un nombre n de savoir si il est premier ou non en un temps record. Avec les anciens algorithmes, il fallait 7 minutes à un pentium 700 Mhz pour touver que le nombre n= (1*10^9)+7 était premier. Je ne connais exactement pas le temps avec le nouvel algorithme mais c'est beaucoup moins.
Du coup, ça ouvre de nouvelle porte en matière de cryptage informatique. Le tout dernier et infaillible algorithme de cryptage RSA utilisant les nombres premiers pourrais donc mettre en pratique cette nouvelle formule afin de réduire sensiblement le temps de cryptage d'un message car les nombres premiers utilisé par RSA sont des nombres comportant 100 chiffres, il faudrait donc une éternité à un ordinateur pour vérifier si ce nombre est premier ou non.
Puisque ça vous interesse, je vais expliquer le fonctionnement de ce system.
On choisis 2 grands entiers naturels d'environ 100 chiffres chacun qu'on appelera p et q et fait leur produit n = p*q.
Puis on choisis un entier e tel que e soit premier avec (p-1)(q-1). Notre cléee publique est: (RSA,n,e)
Les nombres n et e sont publiques et peuvent donc être vu par tout le monde, par contre les nombre p et q restent secret et seulement connus de nous.
Quelqu'un souhaite nous envoyer un message. Il cherche notre clée publique "RSA,n,e", tape son message et le crypte. Le programme de cryptage remplace chaque lettre par sa valeur dans l'alphabet.Puis au lieu d'avoir des blocs de 2 chiffres (2 par lettre), on forme des blocs de trois chiffres (lui: 12 21 09 devient 122 109). On appelle B chaque bloc. On appelle C le reste de la division euclidienne de B^e par n. On se retrouve donc avec un message chiffré constitué de C. L'avantage de cette méthode est que la division euclidienne est une opération à sens unique et donc personne ne pourra déchiffré le message (ormis la personne qui le reçois car elle va se servir de p et q qu'elle est la seule à connaitre).
Maintenant nous recevons le message. Nous avons une clée privé de déchiffrage qui a pour valeur d. On trouve d en faisant le calcul e.d = 1 mod (p-1)(q-1). En prenant le reste de la division euclidienne de C^d par n, on retrouve b et donc on retouve le message.
Enfin bref tout ça pour dire que si quelqu'un a besoin de simplification de calcul afin d'optimiser un programme, je suis là, c'est mon domaine (révélation)
Hors ligne
c'est un vrai roman ce que tu nous a écrit là... sinon tu fait quoi déjà comme étude?
Hors ligne
On peut le trouver où ce nouvel algorithm pour savoir si un nombre est premier ????? Je pourrais remplacer celui que j'avais fait dans TOUCHE...
:?: :?:
Hors ligne
je ne sais psa si g bien compris le post, mais, il me semble que les nombres premiers sont disposés de façon aléatoire!!!
Hors ligne
un nombre premier, c pas aléatoire, c'est un nombre qui ne peux être divisé que par 1 ou lui même, sinon, il ne donne pas de nombre entier !
Et de plus, je croyais que c'était les japonais les meiileur en maths ?!
Hors ligne
hem hem... je sais kan même ce qu'est un nb premier, mais je voulais dire qu'ils sont répartis de façon aléatoire! en gros t'as pas d'algo ou de formule pour les lister tous.
Hors ligne
bin un algo si !
Sinon, je peux savoir quelle aplication pr la G100 ??
Ca peu etre utile, pê po pr des nombres aléatoires, ms pour d' ot choses , non?
Hors ligne
si, un mathematiciens a reussi a
faire une suite numérique avec
les 1000 premiers nombres premier
je crois, et puis les indiens sont
vraiment des bete en math, y'aurait
k'a regarder le nom des gars ki
travaille chez billou et on verrait
que la majorité sont indiens
Hors ligne
Bon pour ceux qui seraient interessé, voici un programme basic de graph 100(+) qui permet de savoir si un nombre est premier ou non:
Lbl 0
Clrtext
" "
Locate 3,1,"taper un nombre n"
?->N
Int ("racine" de N)->P
1->r
N=1=>goto 1
2->r
Frac (N/r)=0 And N "différent" de 2=>goto 1
For 3-> r To P Step 2
Frac (N/r)=0=>goto 1
Next
Locate 8,5,"Premier"
0->Z
While Z "différent" de 31
Getkey->Z
WhileEnd
goto 0
Lbl 1
Locate 6,5,"Non Premier"
Locate 5,6,"Divisible par"
Locate 10,7,r
0->Z
While Z "différent" de 31
Getkey->Z
WhileEnd
goto 0
Les parties en gras sont celles que l'ont cherche à améliorer afin d'augmenter la vitesse de calcul. (ce serait sympa si quelqu'un pouvait me le faire en C et me l'envoyer en *.EXE pour la calculatrice, Merci)
Ce programme N'EST PAS le tout dernier qui viens d'être trouvé, en le regardant de plus prêt on peut se rendre compte que n'importe qui aurait pu le trouver. De plus il met 5 minutes à trouver que le chiffre (1*10^9)+7 est premier ce qui est tout même mieux que le anciens algorithme sur pc mais il faut dire qu'ils se prennaient le tête avant. Le nouvel algorythme reste tout aussi puissant que les autres quand il s'agit de petits nombres mais à partir de 15 chiffres, on commence déjà à ramer, même avec un ordi. Autant vous dire que le cryptage RSA qui a besoin de nombres premier de 100 chiffres a interêt à posséder un puissant alogorithme.
Sinon pour le dernier je ne connais encore personne qui en ai fait un programme mais je peux donner une ébauche en language C, réalisé pas les indiens. Aucune personne n'ayant pas fait des études poussées en math ne peux comprendre les formules, de plus le programme n'est pas fini, ce n'est qu'un petite partie. Ce programme ne peux pas être réalisé sur graph 100 car il manque des fonctions comme "modulo":mod ou encore "congru" et "non congru": Un triple égal et un triple égal barré.
Input: integer n>1
if ( n is of the form a^b, b>1) output composite;
r=2;
while(r<n) {
if (gcd(n,r) "différent" de 1) output composite
if (r is prime)
let q be the largest prime..........................
bon ça me soule de vous le taper et en plus ça n'a aucun interêt puisqu'il n'est pas complet. Cet algorithme utilise principalement les fonctions logarithmiques et les divisions euclidiennes.Mais vous pouvez le trouver sur internet facilement je pense. Pour remplacer vos anciens alogorithme si ils sont lent, je vous conseille donc le premier et je ferais signe si j'arrive à mettre un algorithme plus puissant sur graph 100. Sinon 2072, si ton algorithme est plus efficace que celui que j'ai donné, ça m'interesserais de le voir.
Et sinon il est vrai qu'il existe des laboratoire au japon. Les japonais sont meilleur techniquement mais les mathématiques, c'est chez les indiens que ça se passe. Et il est vrai aussi que c'est pas des bêtes en maths. Il y a les mathématiciens qui travaillent en colaboration avec des informaticiens. Les mathématiciens mettent la formule au point puis on fait des test sur ordi en C++. Mais je pense quand même que les mathématiciens doivent s'y connaitre un peu.
Après je sais pas exactement à quoi peuvent servir les nombres premiers pour un porgramme sur calculatrice mais quand on en a besoin, on est bien content de pouvoir le faire rapidement. Le must serait de pouvoir trouver instantanément et ce là avec n'importe qu'elle nombre mais pour l'instant, il n'existe que des algorithmes qui effectuent les divisions avec tout les nombres et qui regardent le reste de la division: si c'est 0, c'est la chiffre n'est pas premier et si c'est différent de 0 avec tout les nombres de 2 à n (n étant notre valeur) alors le chiffre est premier. On a d'abord pensé à diviser n par 2 car on s'est rendu compte que ça sevait à rien d'aller au bout, puis après on n'est pas allé plus loin que racine de n. Et puis maintenant, on va pas plus loin que 2*(log n)². A savoir pourquoi, ça j'en sais rien, je travaille pas exactement là dessus mais il doit y avoir une raison.
Ps: quelqu'un peut-il taper le premier programme en C, en faire un *.EXE pour la calculatrice et me l'envoyer avec les sources. Merci
@+ pour un nouveau super long message
Hors ligne
ça va les doigts, ça chauffe pas trop?
juste comme ça, ça sert a quoi un triple égal?
Hors ligne
quand je dis triple égal, c'est comme un égal mais avec 3 trais. Je pense qua ça existe en language C. Par exemple:
7 et 10 sont congru modulo 3. C'est-à-dire que le reste de la division euclidienne de 7 par 3 et de 10 par 3 est le même (ici 1).
et ça s'écrit: 7 = 10 [3] ou 7 = 10 mod 3
On remplace bien sur le "=" par un congru (trois trais). Je ne peux le faire ici c'est pour ça que je met un égal.
ps: toujours personne pour faire mon petit programme en C ??
Hors ligne
ClrText "ENTREZ UN NOMBRE"?->A 2->B Do While Frac (A:B)=0 B(le petit triangle noir) A/B->A WhileEnd B=/=2=>B+2->B B=2=>3->B IfEnd Lpwhile B<=A
décomposition d'un nombre en facteur premier
et peux donc savoir si un nombre est premier,
BY CASIO
il sont fort
il est plus court que le tiens
Hors ligne
c'est vrai, avec ce genre de prog, faut pas trop lui mettre des gros chiffre car il met un temps fou alors que l'autre prog qui est plus long te dit directement si c'est un nombre premier !
Hors ligne
DANS TOUCHE en appuyant sur F1 dans le menu principal vous avez un logiciel qui décompose un nombres en facteur premier et qui est capable de donner tous ses diviseurs.
La vesrion basic de ce programme existe aussi sur mon site.
Et tjrs sur mon site pour ceux qui on Internet Explorer 5.5 ou plus ils peuvent utiliser les applications javascript qui peuvent donner la décomposition d'un nombre et lister tous les nombre premier existant entre 2 valeurs. (la vitesse dépend de celle de votre PC).
Mes routines celles de TOUCHE, de mon site ou du prog basic ne test que les nombre impairs et utilisent le test de primalité je connais rien d'autre pour tester si un nombre est premier.
Télécharge TOUCHE mon ami ça doit faire plus d'1 an qu'il y a un décompositeur de nombre en facteurs premier, il met 40 secondes pour trouver que 10000000007 est premier (sur la G100), sur le PC 350Mhz la réponse est immédiate.
en prime il est capable de te lister tous les diviseurs d'un nombre en quelques secondes (il utilise la décomposition des facteurs premier).
La version javascript met moins d'une seconde.
Les sources sont disponible dans la version 3.45 de TOUCHE.
Peux-tu me dire quel est ce nouvel algo ?
PS: les === n'existe pas en C mais le modulo existe (%)
Hors ligne
en parlant de vitesse, g comparé la vitesse d'une graph100 et celle d'une graph100+, pk la G100+ est + rapide?
Hors ligne
t'es sur ? comment t'as fait ton calcul enfin, en les comparant comment ?
Hors ligne
Idem que Iscache...
Thunderhead m'avais filé sa graph 100+ et j'en ai profité pour comparer leur vitesse d'execution sur Snake II mais je n'ai vu aucune différences!!! 8O 8O
Hors ligne
moi j'en ai vu une en tout cas, t'es pas d'accord IscaChe ?
Hors ligne
Et ou ca 8O 8O 8O ???
Soit plus précise Thunderhead!!
Hors ligne
met tes lunettes swifter!!!
Hors ligne
Euh non...Thunderhead...
T'as pas vraiment compris la question...
On parlait de la vitesse d'execution de la graph 100 et de celle de la graph 100+....
Et je disais que je n'avais vu aucune différence entre les 2
Hors ligne
c'est toi qu'a pas compris, nous disons moi et IscaHe qu'il y a une différence !
Hors ligne
Pages: 1 2