grob1
Messages postés8Date d'inscriptionmercredi 17 juin 2009StatutMembreDernière intervention17 novembre 2009
-
18 juin 2009 à 17:10
grob1
Messages postés8Date d'inscriptionmercredi 17 juin 2009StatutMembreDernière intervention17 novembre 2009
-
23 juin 2009 à 11:11
Bonjour, je veut faire un calcul avec modulo mais le résultat n'est pas le bon, j'ai écrit :
TextBox2.Text = ((textBox3.Text)^103) mod 403
Par exemple quand je met la valeur 50 dans la TextBox3, il me sort 336 dans la TextBox2, alors qu'avec la calculette de window pour (50^103) mod 403 = 262
Egalon
Messages postés125Date d'inscriptionlundi 26 avril 2004StatutMembreDernière intervention17 juin 2011 22 juin 2009 à 19:47
En y réfléchissant un peu plus, y a une solution qui devrait bien fonctionner:
un multiple de 403 a forcément un modulo nul.
Donc une récurrence en ne conservant que le modulo devrait passer:
reste = 50
faire 102 fois:
reste = reste*50 modulo 403
boucler
à tester donc avec les premieres ittération pour confirmer.
Signé: Egalon qui comprend difficilement
Egalon
Messages postés125Date d'inscriptionlundi 26 avril 2004StatutMembreDernière intervention17 juin 2011 18 juin 2009 à 22:03
Le problème est très certainement la taille du nombre 50^103 qui ne tient pas facilement dans entier, qui serait plutot un double . La proportion entre le nombres est bien trop en décalage pour obtenir un réel résultat.
La solution de ton problème pourrait passer par les congruences afin de simplifier les calculs, mais il me semble que 403 soit premier.=> dixit la solution.
Ou regarder la partie décimale de la division complete. Mais par logique, la taille du nombre décimal peut être similaire à celle de la taille du dividende avant d'etre significatif.
Tu travailles sur un nombre beaucoup trop grand pour obtenir la finesse nécessaire à calculer le résultat.