JavaScript中Karatsuba大数乘法算法执行失败问题求助
Karatsuba乘法算法测试失败问题
我最近测试了两个不同版本的Karatsuba乘法算法,在计算超大数值x和y的乘积时都出了问题,而且两个算法给出的错误结果还不一样。
先贴一下测试用的参数和正确结果:
const x = 3141592653589793238462643383279502884197169399375105820974944592 const y = 2718281828459045235360287471352662497757247093699959574966967627 const solution = 8539734222673567065463550869546574495034888535765114961879601127067743044893204848617875072216249073013374895871952806582723184
算法1测试情况
这个版本的算法来自一个Gist实现,执行后结果完全不对:
Expected value to equal: 8.539734222673567e+126
Received: 7.292575034127423e+22
算法2测试情况
另一个版本来自Stack Overflow的回答,结果同样错误,而且和算法1的错误结果不同:
Expected value to equal: 8.539734222673567e+126
Received: 6.0002556749374185e+22
问题复现
你可以通过GitHub上的一个PR来复现这个问题,该PR属于Algorithms-Illuminated-Part1_TheBasics仓库。
内容的提问来源于stack exchange,提问作者Falieson
相关产品推荐
相关产品推荐

