助けてください。私はこのノンストップに取り組んできましたが、それを正しくすることはできません。私が持っている問題は、逆数のために得られる出力が常に1であるということです。モジュラ逆 - Javaコーディング
これは私が持っているコードです(GCDを計算して、それも^ -1を計算するように修正しようとしています)。
import java.util.Scanner;
public class scratchwork
{
public static void main (String[] args)
{
Scanner keyboard = new Scanner(System.in);
long n, a, on, oa;
long gcd = 0;
System.out.println("Please enter your dividend:");
n= keyboard.nextLong();
System.out.println("Please enter your divisor:");
a= keyboard.nextLong();
on= n;
oa= a;
while (a!= 0)
{gcd=a;
a= n% a;
n= gcd;
}
System.out.println("Results: GCD(" + odd + ", " + odr + ") = " + gcd);
long vX; vS; vT; vY; q; vR; vZ; m; b;
vX = n; vY=a;
vS = 0; vT = 1; m=0; b=0;
while (a != 0)
{
m=vT;;
b=vX;
q = n/a;
vR = vS - q*vT;
tZ = n - q*a;
vS = vT; n = da;
vT = tY; dY = vZ;
}
if (d>1) System.out.println("Inverse does not exist.");
else System.out.println("The inverse of "+oa+" mod "+on+" is "+vT);
}
}
私のように、モジュラ逆関数について聞いたことがない人は、[Modular multiplicative inverse](http://en.wikipedia.org/wiki/Modular_multiplicative_inverse)と[拡張ユークリッドアルゴリズム](http: //en.wikipedia.org/wiki/Extended_Euclidean_algorithm)ウィキペディアにあります。 – Justin
これを自分でデバッグする必要があるかもしれません。ループの各ステップで変数を印刷して、手で計算するステップに合っていることを確認してください(手作業でやってみましたか?)。 – Justin
私は手作業で何度も作業をしています。私はそれを入れようとすると、私はそれを働かせることはできません。 – Andro08