【问题标题】:Using Java to compute 11^-1 mod 26使用 Java 计算 11^-1 mod 26
【发布时间】:2014-10-30 15:30:14
【问题描述】:

我将如何处理这个 n Java?

double power = (Math.pow(11,-1)) % 26;
System.out.println(power);

只返回0.09090909090909091。根据wolfram

谢谢!

【问题讨论】:

  • 你期待什么输出?
  • 有什么问题?
  • 顺便说一句,11^-1 = 1/11 ~= 0.09。这个模 26 显然仍然会产生相同的值。

标签: java modular


【解决方案1】:

Java 在技术上是正确的,11 mod 26 的倒数是(大约)0.09090909090909,因为 0.09090909090909 * 11 大约是 1,无论是否是 mod 26。

但是,您要查找的是具有相同属性的整数 19,因为 19*11 = 1 mod 26,而您不能使用相同的方法来做到这一点。

幸运的是,标准库已经涵盖了您:

import java.math.BigInteger;

class Test {
    public static void main(String[] args) {
        System.out.println(
            new BigInteger("11").modInverse(new BigInteger("26")));
    }
}

【讨论】:

  • +1 用于理解问题,+1 用于提供此解决方案! (该死,为什么我不能投票两次?)
  • +1 我同意 Barranka 的观点,你应该得到双重支持才能理解问题所在!
  • 我曾是一名 CS TA :P
  • @Barranka Stefano 所说的——帮助其他学生完成您以前上过的课程的课堂作业。这样一来,您就会收到一万亿个关于模运算的奇怪措辞问题。
  • @thatotherguy 谢谢!我不熟悉这个词:)
【解决方案2】:

Wolframalfa 没有按预期解释您的语法。而不是写

11^-1 mod 26

试试

mod(11^-1, 26)

这将返回 same result 作为您的 Java sn-p。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 2018-09-17
    • 2017-04-12
    • 2015-12-20
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多