如何在python中反转%操作

时间:2014-10-10 14:14:50

标签: python math python-3.x modulo

例如:

x = (y*6) % 26 #this is  a consistent formula
18 = (y*6) % 26

我如何解决?或者有没有办法轻松扭转%操作?

3 个答案:

答案 0 :(得分:4)

你无法真正反转模运算。模运算基本上返回等价组。想想日历......

日历(和时钟)是mod 12.

10月后的3个月是1月,即(10 + 3)%12 == 1
10月后的15个月是1月。即(10 + 15)%12 == 1
等...

所以你的问题好像在问你是否可以通过了解它是什么日历月来判断它是哪一年,这当然是不可能的

答案 1 :(得分:0)

没有确切的方法来反转操作,因为您丢失了信息,因为%只会在两个数字被分割时给出余数。

就像说,如果我将x除以6,我得到一个整数,余数为3.我不能说X是什么 - 它可以是9,它可以是15或任何无限多种可能性。要解决这个问题,你需要整数和模数。

你为什么要这样做 - 如果你告诉我们你想要解决的更多问题,也许我们可以提供帮助。

答案 2 :(得分:0)

18 =(y * 6)%26

表示

y * 6 = n * 26 + 18其中n可以是任何整数值。所以

y = n * 26/6 + 3

y = n * 13/3 + 3

你现在可以说y也是一个整数。这只发生在

y = n * 13 + 3

所以,y = 3,16,29,42,......