栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么Python 2.x中的math.factorial比3.x慢得多?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么Python 2.x中的math.factorial比3.x慢得多?

Python
2使用朴素的阶乘算法:

1121 for (i=1 ; i<=x ; i++) {1122     iobj = (PyObject *)PyInt_FromLong(i);1123     if (iobj == NULL)1124         goto error;1125     newresult = PyNumber_Multiply(result, iobj);1126     Py_DECREF(iobj);1127     if (newresult == NULL)1128         goto error;1129     Py_DECREF(result);1130     result = newresult;1131 }

Python
3使用分治法阶乘算法:

1229 * factorial(n)的形式为2 ** k * m,m为奇数。k和m是1230 *单独计算,然后使用左移组合。

有关讨论,请参见Python Bugtracker问题。感谢DSM指出这一点。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/623495.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号