7
votes

Comment calculer le module inverse

Maintenant, j'ai une formule: xxx

mais comment calculer le module inverse pour obtenir le plus petit "x" si je connais le résultat déjà xxx

Je veux dire quelle est la formule ou la logique pour obtenir x


6 commentaires

Beaucoup de valeurs de x satisferont cette équation. Il serait juste de dire que les possibilités sont infinies, mais non dans les limites de 55 et int.maxvalue .


@Jodrell, il a été déclaré qu'il cherche le plus petit x. Cela le limite.


@Coreyogburn Oops, bon point.


Je suppose que le plus bas est en réalité -9


Je suppose que le plus petit positif "x" ...


@Jodrell: Oui, c'est mon point ...


5 Réponses :


5
votes

Ce n'est peut-être pas le X qui a été utilisé à l'origine dans le module, mais si vous avez

(A + x)% b = c

vous pouvez faire

(b + c - a)% b = x


2 commentaires

Nevermind, la réponse de Digemall souligne l'endroit où le mien échoue. Édité pour tenir compte de cela.


Ceci est bien sûr la première et bonne réponse, mais @ digemall résout facilement mon problème avec la manipulation de la déclaration. Mais de toute façon, merci, vous m'aide beaucoup.



1
votes

x = (44 - 53)% 62 devrait fonctionner? XXX


0 commentaires

1
votes

Comment sur

IEnumerable<int> ReverseModulo(
    int numeratorPart, int divisor, int modulus)
{
   for(int i = (divisor + modulus) - numeratorPart; 
       i += divisor; 
       i <= int.MaxValue)
   {
       yield return i;
   }
}


0 commentaires

12
votes
// (53 + x) % 62 = 44
var res = ReverseModulus(62,53,44); // res = 53

// (2 + x) % 8 = 3
var res = ReverseModulus(8,2,3); // res = 1

5 commentaires

@IVan Li: Son div + reste - A est mon B + C - A . Si le mien ne fonctionne pas avec d'autres chiffres, cela ne le serait pas non plus.


Dans ce cas, aucune réponse ne fonctionne. Je n'essaie pas de discréditer votre réponse @Digemall, je me sens juste un peu pilée pour avoir la même équation de base que vous (12 minutes devant vous), juste sans la validation évidente.


Cependant, est-il correct de considérer le plus petit X positif? Sinon, le plus petit de votre exemple devrait être de -9, pas 53 ...


@COREYOGBURN: En fait, c'est ce que ma condition de si vous traitez. (2 + 1)% 8 = 3 et reste - un donne exactement 1 ... tandis que la partie égale de nos codes donne 9 ...


Tu m'as eu là, je n'y pensais pas. Mon édition explique maintenant tout cela dans une équation, mais je vous dois cela.



0
votes

Qui a besoin d'un ordinateur? Si 53 + X est congruant à 44 ans, Modulo 62, nous savons ensuite que pour entier K, xxx

résolution de x, nous voyons que xxx

Il est clair que les plus petites solutions sont -9 (lorsque k = 0) et 53 (lorsque k = 1).


0 commentaires