大佬教程收集整理的这篇文章主要介绍了Javascript在Python中给同一个算法提供了不同的答案,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
不一致只会在结果变大时发生.例如,fibd(90,19)在JavaScript中返回2870048561233730600,但在Python中,我得到2870048561233731259.
有没有关于JavaScript中的数字的东西,给我一个不同的答案,或者在我的JavaScript代码中犯了一个微妙的错误?
JavaScript解决方案:
function fibd(n,m) { // Create an array of length m and set all elements to 0 var rp = new Array(m); rp = rp.map(function(E) { return 0; }); rp[0] = 1; for (var i = 1; i < n; i++) { // prepend the sum of all elements from 1 to the end of the array rp.splice(0,rp.reduce(function (e,s) { return s + e; }) - rp[0]); // Remove the final element rp.pop(); } // Sum up all the elements return rp.reduce(function (e,s) { return s + e; }); }
Python解决方案:
def fibd(n,m): # Create an array of length m and set all elements to 0 rp = [0] * m rp[0] = 1 for i in range(n-1): # The sum of all elements from 1 the end and dropping the final element rp = [sum(rp[1:])] + rp[:-1] return sum(rp)
另一方面,Python具有bignum支持,并且将非常高兴地处理4096位整数(对于使用加密算法的人来说,这是一个巨大的福音).
如果您搜索,您可能会找到一个Javascript bignum库 – 例如http://silentmatt.com/biginteger/
以上是大佬教程为你收集整理的Javascript在Python中给同一个算法提供了不同的答案全部内容,希望文章能够帮你解决Javascript在Python中给同一个算法提供了不同的答案所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。