我对python非常陌生,我刚刚开始使用gmpy2,但我对其中一个函数有点困惑,而gmpy的文档在这方面没有帮助:
我想用模数(以及地板)进行除法,所以我找到了f_divmod()函数:
F_divmod(.)f_divmod(x,y)返回x的商和余数除以y,商数向-Inf (地板四舍五入)四舍五入,其馀部分将具有与y. x和y必须是整数相同的符号。
但是,如果这做了我认为它应该做的事情(这可能是我的错误),它应该做:x / y % m,我看不出提供m的方法。这是错误的函数吗,还是我需要在其他地方定义一个模数?
我看到我的选择是:
c = gmpy2.f_div(a, b) % m提前感谢!
发布于 2013-02-18 00:11:53
注意:我维护gmpy2。
gmpy2.f_divmod() (以及gmpy2.c_divmod()、gmpy2.t_divmod()和gmpy2.divmod())是以内置divmod()为模板的。所有函数都返回商和余数,但是每个函数使用一个稍微不同的规则来计算商和余数。这些名称意味着函数返回元组(a // b, a % b)。他们不做除法,然后是国防部。
如果你想用地板除法计算商数,然后把这个结果降低到另一个数字,那么你的选择是正确的。
稍微偏离主题提示:您应该养成使用//进行整数除法的习惯。在Python3中,/变成浮点除法。//是Python2和3中的整数除法。
https://stackoverflow.com/questions/14926601
复制相似问题