C#使用^符号时如何反转模数

问题描述 投票:-6回答:1

目前我有这个公式:13 ^ 2 mod 5 = 4

我想在这里计算出2:

13 x X vs. 5 = 4

X =?

我在网上找到了几个公式/代码,但我没有找到任何用^符号来代替它。

会感激一些帮助

我的客户收到了TEST_PRIVATE以外的所有内容,所以我想计算一下。

这是我使用的代码(服务器端)(这是加密,而不是解密)

string TEST_GENERATED = "13";
string TEST_PRIVATE = "2";
string TEST_PRIME = "5";
BigIntegerTEST TESTMOD_1 = new BigIntegerTEST(TEST_GENERATED, 10);
BigIntegerTEST TESTMOD_2 = new BigIntegerTEST(TEST_PRIVATE, 10);
BigIntegerTEST TESTMOD_3 = new BigIntegerTEST(TEST_PRIME, 10);
BigIntegerTEST TESTMOD_4 = TESTMOD_1.modPow(TESTMOD_2, TESTMOD_3);

基本上我想将TESTMOD_4反转为TESTMOD_2只使用TESTMOD_4,TESTMOD_3和TESTMOD_1

(我知道modPow通常有3个参数,我正在使用一个特殊的类)

TDLR;工作范例:

(6 + 7)MOD 10 = 3

(3 - 6 + 10)MOD 10 = 7

这是我想要的主要结果:(我想要检索7)

(6 ^ 7)MOD 10 = 6

? = 7

c# modulus
1个回答
-1
投票

就像这个函数一样简单:

public double DoCalc(double Number1, double Number2, double Number3)
    { return (Math.Pow(Number1, Number2)) % Number3; }

然后从按钮单击事件中调用它,如下所示:

private void btmDoCalc_Click(object sender, EventArgs e)
    {
        // Here show it up in message box directly.
        MessageBox.Show("DoCalc= " + DoCalc(13, 2, 5).ToString());

        // Here assign it to some double variables.
        double N1 = 0, N2 = 0, N3 = 0;

        N1 = DoCalc(13, 2, 4);
        N2 = DoCalc(13, 2, 3);
        N3 = DoCalc(13, 2, 2);
        MessageBox.Show("DoCalc= " + N1);
        MessageBox.Show("DoCalc= " + N2);
        MessageBox.Show("DoCalc= " + N3);
    }

这里有一些结果的图像。 enter image description here

我希望这能回答你的问题^ _ ^

© www.soinside.com 2019 - 2024. All rights reserved.