【问题标题】:python big integer multiplication doesn't calculate most significant digits [closed]python大整数乘法不计算最高有效数字[关闭]
【发布时间】:2018-05-18 20:36:10
【问题描述】:

我有一个 python 程序,它应该乘以 2 个大整数。

问题是我在具有相同输入的BigInteger 类的java 中得到了不同的结果。

我尝试过用于 python 的 DecInt 库,但给出的答案与使用纯 python 相同。

这是我的变量:

d = 372049305848826709205673800090501485720867768816

r = 5452188953055713107393819158892374332916586527736541041226026450382

结果我从d * r得到python:

2028483115341019294875069650745272851135156323450218238187883716036516369477015140871224045070868977706272670887712

结果我用BigInteger 类进入java:

9530687378863294988874153740700860249994095546182028483115341019294875069650745272851135156323450218238187883716036516369477015140871224045070868977706272670887712

这是我的java代码:

BigInteger d = new BigInteger("372049305848826709205673800090501485720867768816");
        BigInteger r = new BigInteger("5452188953055713107393819158892374332916586527736541041226026450382");
        BigInteger tmp1 = d.multiply(r);
        System.out.println(tmp1);

如您所见,python 的结果中遗漏了一些最重要的数字。

有什么解决办法吗?

【问题讨论】:

  • python 的答案其实是right 一个。
  • @ninesalt 你能解释更多吗?
  • 没有看到Java代码。
  • @Yashar 用另一个计算器试试,比如echo '372049305848826709205673800090501485720867768816 * 5452188953055713107393819158892374332916586527736541041226026450382' | bc。尝试乘以浮点数。尝试计算预期位数。尝试将前几位数字相乘。有很多方法可以对计算进行复核,而且所有方法都与此处的 Python 结果一致。
  • 该代码不会打印该输出。你需要给我们一个minimal reproducible example 确实如此。一种可能性是您正在执行其他操作,在程序的早期打印出953068737886329498887415374070086024999409554618,没有换行符。所以这一行打印了正确的答案,但它被连接到代码其他部分的所有其他字符上。

标签: java python biginteger multiplication


【解决方案1】:

JavaPython 给出相同的答案:

2028483115341019294875069650745272851135156323450218238187883716036516369477015140871224045070868977706272670887712

那么问题一定出在您的 Java 代码中。确保执行乘法 correctly 并验证您的输入。

另外,检查是否有任何东西可能在结果之前打印数字。我能想到的最简单的方法是:

System.out.println("the result is: " + int1.multiply(int2));

这会将您感兴趣的输出与已打印的所有内容分开。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 2014-11-08
    • 2014-09-23
    • 1970-01-01
    相关资源
    最近更新 更多