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

时间:2019-04-24 20:04:03

标签: c# modulus

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

我想在这里计算2:

13 ^ X mod 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

1 个答案:

答案 0 :(得分:-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

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