问题标签 [largenumber]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
9299 浏览

python - 为什么 python 不能在所有领域处理非常大的数字?

我正在做一个难题,我必须处理 10^18 的订单数。但是,我发现 python 无法在所有领域处理非常大的数字。

具体来说,如果我们指定 a = 1000000000000000000 (10^18) 并进行基本的算术计算(+、-、/、*),它的响应。但是,当我在 range() 中使用它时,它会显示 OverflowError

我使用了 Python 2.7。

  1. 我该如何处理这种情况?,处理持有这些数字的谜题的最佳方法是什么。(教程/书籍参考将不胜感激)
  2. 为什么 Python 不能在 range()/xrange() 中处理它

我想在 python 2.7 中使用内置函数来完成它。这不可能吗?

0 投票
3 回答
192 浏览

math - 有哪些选项可以表示超过 2^81 位的数字?

我遇到了一个有趣的数学问题,需要我对超过 2 81位的数字进行一些算术运算。我知道不可能用一个每个数字都有一个存储单元的系统来表示这么大的数字,但我想知道是否有任何方法可以解决这个问题。

我最初的想法是使用一个非常大的基数而不是基数 10(十进制)。经过一番思考,我相信(但无法验证)最佳基数将是位数的平方根(因此对于具有 2 81位数字的数字,您将使用基数 2 40 ish),这是一种改进,但是不能很好地扩展,仍然不是很实用。

那么我有什么选择呢?我知道许多任意精度库,但是有没有支持这种算术的规模?

谢谢o7

编辑:在思考了更多之后,我意识到我可能完全错误地认为“最佳基数将是位数的平方根”,但是 a)这就是我问的原因,b)我太累了,不记得我最初的假设推理。

编辑 2:以 10 为基数的 1000,000 = 以 16 为基数的 F4240 = 以 8 为基数的 364110。在以 16 为基数的情况下,您需要 20 位来存储以 8 为基数的数字,您需要 21,因此看起来通过增加基数可以降低总数需要的位数。(同样这可能是错误的)

0 投票
1 回答
788 浏览

gmp - 使用大数时的 GMP 溢出

我正在开发一个程序,以在 C++ 中分解非常大的数字(20 位或更多),并使用 GMP 来处理溢出问题。我的程序对于大约 10 位或更少的数字运行良好,但是当我向它扔一个 15 位数字时,它会爆炸。我将把我的程序简化为这样的一行:

如果我将该行替换为

然后一切正常。

这是错误:

有人知道如何解决这个问题,以便我可以使用大数字吗?我认为 GMP 应该允许 500 位数字,正数或负数。

谢谢!

0 投票
4 回答
403 浏览

c++ - 非常大的浮点数会导致不确定性吗?

我在 win32 环境中运行 C++ 优化程序。该程序为 FFTW 和 pthreads 使用预构建的 DLL。

最近,程序发生了变化,它可以遇到非常大的数字,甚至可能是无穷大。在此更改之后,这个原本精简而强大的系统开始产生奇怪的症状 - 最明显的是它在不同的运行(在同一台计算机上,使用相同的二进制文件)产生不同的数值结果,甚至在这里和那里添加 printf 或虚拟分配从根本上改变了行为。

我仔细检查了所有可能的缓冲区溢出、内存分配、线程问题(我现在将线程池大小减少到 1)、堆栈大小,但经过数周的搜索,我什么也没找到。在更改之前,该程序没有不确定性或稳定性问题,它会定期运行数天。

我想知道问题是否出在 FFTW 模块上?或者这种浮点不稳定性是否源于大量数字?

0 投票
2 回答
2443 浏览

java - 计算 100,000 个整数数组的倒数,为什么会得到负输出?

上面的代码从文件中读取 100,000 个整数,并计算这个整数数组的反转数。输出可能是一个非常大的数字,例如 1198233847,并且绝对应该是正数。但是,它会输出一个负数,例如 -1887062008。程序逻辑可能是正确的,因为我出于相同目的尝试了其他算法并得到与输出相同的负数。我怀疑结果是一个太大的正数,因此 Java 将其转换为负数。

0 投票
2 回答
5380 浏览

java - java BigDecimal arithmaticException 无效操作

我找不到为什么我有一段 java.lang.ArithmeticException: Invalid operation时间使用大十进制。

一些指数具有诸如 的值-27。有什么办法可以解决这个问题,因为很难用许多零存储原始值。我选择了BigDecimal,因为我需要精确。

谢谢

0 投票
5 回答
17085 浏览

c++ - 对大数求和

我在 Project Euler 网站上遇到了一些问题并且遇到了问题。问题要求“计算出以下一百个 50 位数字之和的前十位。” 我猜有一些数学方法可以解决这个问题,但我只是想知道这么大的数字是如何相加的?我将数字存储为字符串并将每个数字转换为长数字,但数字太大以至于总和不起作用。

有没有办法将非常大的数字作为变量(不是字符串)?我不希望代码解决问题,因为我想自己解决这个问题。

0 投票
2 回答
1430 浏览

matlab - 大数与小数的乘法

我正在尝试使用 MATLAB 计算一个相当难看的积分。我遇到的问题是我将一个非常大的数字(> 10 ^ 300)与一个非常小的数字(< 10 ^ -300)相乘。MATLAB 为此返回“inf”,即使它应该在 0-0.0005 的范围内。这就是我所拥有的

其中 qb = 5,lambda = 12,theta = 10,mu = 3。我想找到的是

对于 u 的所有真实值。问题是,每当 u>28 时,它都会被评估为“inf”。我听说过并尝试过使用 MATLAB 函数“vpa”,但是当我想使用函数时它似乎效果不佳......

在这一点上,任何提示将不胜感激!

0 投票
1 回答
314 浏览

python - python中的大整数除法错误

我正在用 Python 中的大整数进行一些计算,但得到了一些奇怪的结果。

为什么第四行和第六行有区别?它应该是平等的。

我在 linux pc 32bits 上使用 Python 版本 2.7.3

0 投票
5 回答
492 浏览

c - 存储大型 B 基数的最佳方法?

存储大型 B 基数的最佳方法是什么,以便可以有效地完成右移和检查最低有效位等操作?

实际上,我遇到了一个面试问题,上面写着

我在想的是,如果我考虑base N number system, thenN^N将相当于1 followed by N zeroin it。例如 - 对于 N = 2,2^2 = 100(以 2 为底),对于 N=3,3^3 = 1000(以 3 为底)。然后我可以轻松地编写一个函数来判断是否K = N^N

现在这个函数有两个主要问题:

为了提高效率,我正在寻找某种方法来表示大的基数 N 数字,以便我可以有效地执行右移和检查最低有效位操作。有没有人遇到过这样的事情?或者有人知道有效解决这个问题的任何其他方法吗?