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

Python如何实现内置函数pow()?

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

Python如何实现内置函数pow()?

如果

a
b
c
都是整数,实现可以进行通过更高效的二进制幂和减少模
c
中的每一步,包括第一次(即降低
a
c
,你甚至开始之前)。这确实是实现的目的
long_pow()
。该函数具有两百多行代码,因为它必须处理引用计数,并且它处理负指数和许多特殊情况。

尽管从本质上讲,算法的思想很简单。假设我们要计算

a ** b
正整数
a
b
,并且
b
具有二进制数字
b_i
。然后,我们可以写
b

b = b_0 + b1 * 2 + b2 * 2**2 + ... + b_k ** 2**k

a ** b

a ** b = a**b0 * (a**2)**b1 * (a**2**2)**b2 * ... * (a**2**k)**b_k

该产品中的每个因子均为形式

(a**2**i)**b_i
。如果
b_i
为零,我们可以简单地忽略该因子。如果
b_i
为1,则系数等于
a**2**i
,并且可以
i
通过反复平方来计算所有这些幂
a
。总体而言,我们需要乘以平方和乘以
k
,其中
k
是的二进制数
b

如上所述,因为

pow(a, b, c)
我们可以
c
在平方和乘法之后的每一步中减少模数。



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

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

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