Erreur avec Modulo sur VB.NET

[Résolu]
Signaler
Messages postés
8
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
17 novembre 2009
-
Messages postés
8
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
17 novembre 2009
-
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

Quel est le problème ?

4 réponses

Messages postés
125
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011

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
Messages postés
125
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
17 juin 2011

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.
Messages postés
8
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
17 novembre 2009

Euh, j'avoue que j'ai du mal a comprendre les solutions que tu proposes.
Messages postés
8
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
17 novembre 2009

Ça fonctionne merci !