python中的模块化加法
Posted
技术标签:
【中文标题】python中的模块化加法【英文标题】:Modular addition in python 【发布时间】:2011-10-04 19:56:39 【问题描述】:我想将一个数字 y 添加到 x,但让 x 环绕以保持在 0 和 48 之间。注意 y 可能是负数,但幅度永远不会大于 48。有没有比这样做更好的方法:
x = x + y
if x >= 48:
x = x - 48
elif x < 0:
x = x + 48
?
【问题讨论】:
【参考方案1】:x = (x + y) % 48
模运算符是你的朋友。
>>> 48 % 48
0: 0
>>> 49 % 48
1: 1
>>> -1 % 48
2: 47
>>> -12 % 48
3: 36
>>> 0 % 48
4: 0
>>> 12 % 48
5: 12
【讨论】:
【参考方案2】:如果你在做模运算,你只需要使用模运算符。
x = (x + y) % 48
【讨论】:
【参考方案3】:不只是(x+ y)% 48
适合你。查看更多关于模数here的信息。
【讨论】:
【参考方案4】:你可以使用模运算符:
x = (x+y) % 48
【讨论】:
【参考方案5】:你可以使用
x = (x+y) % 48
这将为您提供任何数字的正面x
。
【讨论】:
非负 x(可能为 0)。【参考方案6】:(x + y) % 48
用你喜欢的任何东西替换 48。
【讨论】:
【参考方案7】:您还可以创建一个类来处理模运算,就像这里所做的那样: http://anh.cs.luc.edu/331/code/mod_arith.pyhttp://anh.cs.luc.edu/331/code/mod.py
【讨论】:
以上是关于python中的模块化加法的主要内容,如果未能解决你的问题,请参考以下文章