Bazı matematik işlemlerini gerçekleştirmek için .NET BigInteger sınıfını kullanıyorum. Ancak ModPow yöntemi yanlış sonuçlar veriyor. Ben doğru olduğunu düşünüyorum hangi Java için karşılaştırdık adres:C# BigInteger.ModPow hatası?
// C#
var a = new BigInteger(-1);
var b = new BigInteger(3);
var c = new BigInteger(5);
var x = BigInteger.ModPow(a, b, c); // (x = -1)
// Java
BigInteger a = new BigInteger("-1");
BigInteger b = new BigInteger("3");
BigInteger c = new BigInteger("5");
BigInteger x = a.modPow(b, c); // (x = 4)
o .NET sınıfında bir hata mı veya yanlış bir şey yapıyorum?
Ad yanıltıcı; ilk etapta modül operatörü değil. Kalan operatör. Http://blogs.msdn.com/b/ericlippert/archive/2011/12/05/what-s-the-difference-remainder-vs-modulus.aspx adresine bakın. –