问题标签 [karatsuba]

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 投票
1 回答
250 浏览

c++ - Karatsuba 整数乘法因分段错误而失败

当我运行程序时,它会因分段错误而崩溃。此外,当我在 codeblocks IDE 中调试代码时,我也无法调试它。甚至在调试开始之前程序就崩溃了。我无法理解这个问题。任何帮助,将不胜感激。谢谢!!

0 投票
0 回答
206 浏览

c++ - 这个 Karatsuba 乘法算法实现有什么问题?

第一件事:

~ 这是我在 StackOverflow 上的第一个问题。

~ 我是一名大学生。

~ 这不是我的作业问题(我这样做是为了增加我的算法思维)。

这是我的实现,它不断返回错误的答案。我尝试过运行GDB,但经验不足,无法确定算法出错的地方。请帮忙:

返回的答案是441理想情况下应该是12321.

0 投票
1 回答
503 浏览

algorithm - 唐叶算法

当我运行我的程序时,我不断收到这些错误,有人能发现错误吗?我没有使用递归的经验,我可能搞砸了基本情况。我的测试由两个长度相同的数字组成,我的目标是在不使用内置类的情况下将两个大数字相乘。add 方法只接受两个数字字符串并将它们相加,我检查了一下,无论数字有多大,它都可以工作。

错误 NumberFormatException:对于输入字符串:“” Integer.parseInt(Integer.java:592)

0 投票
1 回答
1510 浏览

c++ - c++ Karatsuba 乘法使用向量

所以我一直在尝试为 Karatsuba 乘法算法编写一个算法,并且我一直在尝试使用向量作为我的数据结构来处理将输入的非常长的数字......

我的程序可以很好地处理较小的数字,但是它确实很难处理较大的数字,并且我得到了核心转储(Seg Fault)。当左侧数字小于右侧数字时,它也会输出奇怪的结果。

有什么想法吗?这是代码。

0 投票
1 回答
324 浏览

python - Python在乘法的数字末尾添加垃圾值

我正在尝试做 Karatsuba 乘法。每当位数超过16时,python在乘以10的幂时最后填充垃圾值

例如:

5789640666777942 * pow(10, 16) = 57896406667779421501721023610880

或者

10023051467610476 * pow(10, 8) = 1002305146761047575625728

我想尽办法解决这个问题。一个月以来,我一直在编写代码(中间还有其他部分)。任何帮助将不胜感激。

编辑:发布整个代码:

我正在尝试乘以:7878064237045606 和 7349065192669285

我正在使用 64 位计算机。而python是2.7.12。64 位。

结束问题。在这里找到解决方案:
Karatsuba 算法适用于小数但不适用于大数,不明白为什么

问题是幂函数将输出作为浮点数。内置**效果更好。

0 投票
2 回答
1760 浏览

java - Karatsuba乘法java递归代码不起作用?

我正在尝试使用 karatsuba 乘法将两个数字相乘。我的 java 代码不工作。我使用字符串作为参数和参数,以便我们可以将两个 n 位数字相乘(n 是偶数)。另外,我不想使用 long 或 BigInteger。请帮我找出我的代码错误。

您能否也请完善我的代码。

乘法传递的数字 - 1234 和 5678

输出为 - 6655870(不正确)

输出应该是 - 7006652(正确)

谢谢

0 投票
0 回答
179 浏览

java - Karatsuba 乘法不能与 BigInteger 递归地工作

我正在尝试使用 karatsuba 乘法将 n 位数字相乘。

我得到一位数的输出(示例 4 和 5 = 20)。

但是,当我将 1234 和 5678 相乘时,我得到了错误并且没有输出结果。

我已经更新了代码和错误消息。请检查。

错误是点击这里

请更正代码。我没有检查两个数字是否相等,长度是奇数还是偶数。

谢谢你。

0 投票
0 回答
215 浏览

arm - ARM NEON 实现中的 Karatsuba 算法似乎有错误

我在互联网上找到了许多用于 ARM NEON 的 Karatsuba 算法的相同实现的副本,包括一些科学论文,例如 http://conradoplg.cryptoland.net/files/2010/12/mocrysen13.pdf

看起来所有这些副本都有相同的故障。虽然说它进行算术乘法,但结果仍然是多项式。如果将 更改为vmull.p8vmull.u8它会为带有一个最低单词的小数字产生正确的结果。但是超过最低单词的大数字是不正确的。实现看起来不错:

但为什么它不像所说的那样正确?基本上我需要一个高效的 64x64=128 arm-v7a 算术运算,看起来 NEON 是这里唯一的选择。

感觉就像在这些操作中的某个地方丢失了一个进位标志,因为我观察到的结果非常接近正确的结果。

0 投票
1 回答
90 浏览

python - 在某处弄错了 karatsuba 乘法

所以我是 python 的新手,用 karatsuba 乘法的伪代码编写了这段代码,我遇到了某种逻辑错误

这是我使用的伪代码:

这是它的python代码:

如果有人做过这个算法,任何人都可以建议我在哪里弄错了吗?

任何帮助,将不胜感激。

0 投票
0 回答
251 浏览

python - 运行时错误:- 比较超过最大递归深度

我知道已经问过这类问题,但我被这个长整数乘法问题困住了。
对于大输入尺寸。