0

我对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

提前致谢!

4

1 回答 1

2

注意:我维护 gmpy2。

gmpy2.f_divmod()(与gmpy2.c_divmod(),gmpy2.t_divmod()和一起gmpy2.divmod())在内置divmod(). 所有函数都返回商和余数,但每个函数使用稍微不同的规则来计算商和余数。这些名称意味着函数返回元组(a // b, a % b)。他们不做除法,然后是mod。

如果您想使用底除法计算商,然后将该结果以另一个数为模,那么您的选择是正确的。

稍微偏离主题的提示:您应该养成使用//整数除法的习惯。在 Python 3 中,/变为浮点除法。//在 Python 2 和 3 中都是整数除法。

于 2013-02-18T00:11:53.757 回答