如何在python中反转%操作
例如:如何在python中反转%操作,python,math,python-3.x,modulo,Python,Math,Python 3.x,Modulo,例如: x = (y*6) % 26 #this is a consistent formula 18 = (y*6) % 26 我如何解决y?或者有没有一种方法可以轻松地反转%运算?没有确切的方法可以反转该运算,因为您丢失了信息,因为%只在两个数字被除时提供余数 这就像说,如果我把x除以6,我得到一个整数和3的余数。我不能说X是什么——它可能是9,也可能是15,或者是无限多的可能性中的任何一个。要算出它,你需要整数和模数 你为什么要这么做?如果你能告诉我们更多你要解决的问题,也许我们能帮上
x = (y*6) % 26 #this is a consistent formula
18 = (y*6) % 26
我如何解决y?或者有没有一种方法可以轻松地反转%运算?没有确切的方法可以反转该运算,因为您丢失了信息,因为%只在两个数字被除时提供余数 这就像说,如果我把x除以6,我得到一个整数和3的余数。我不能说X是什么——它可能是9,也可能是15,或者是无限多的可能性中的任何一个。要算出它,你需要整数和模数
你为什么要这么做?如果你能告诉我们更多你要解决的问题,也许我们能帮上忙。你真的不能像那样反向模运算。模算术返回基本等价的组。想想日历吧 日历(和时钟)是mod 12 10月后的3个月是1月,即(10+3)%12==1
10月后的15个月是1月。ie(10+15)%12==1
等等 所以你的问题似乎是问你是否可以通过知道它是什么日历月来判断它是什么年,当然这是不可能的 意味着 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,没有一个简单的方法。
y
有多种解决方案。如果有帮助的话。这个问题属于。是的,如果同时存储z=y//m
,您可以轻松地反转x=y%m
,在这种情况下y=(z*m)+x
。(或者,简单地说,y
本身,在这种情况下,y
)否则,正如下面充分证明的那样,不。虽然这个问题可能也很适合Math.SE,但它也是关于SO的主题。这是一个完美的类比!爱死它了!