Python中模算子的逆

2024-09-24 00:33:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Python中求解time的以下一组方程:

position1 = (initial_position1 + (time * velocity1)) % 360
position2 = (initial_position2 + (time * velocity2)) % 360

有两个物体以相同的方向围绕一个中心点旋转,速度不同,起点可能不同(即它们在给定时间的位置)。我想知道这两个物体相遇需要多长时间。在

对此,我有一个等式:

^{pr2}$

但是我不能为time求解它,因为%运算符没有反函数。有没有已知的解决方法?如果没有,任何建议都会派上用场。在


Tags: time时间方向速度initial物体方程起点
3条回答

你在试图解决

x1 + t * v1 = x2 + t * v2
and 
x1 - x2 = 360 * n

这意味着

^{pr2}$

你知道v2和{}是什么,所以这只是一个有整数解的线性方程。找出这条线上n是整数的所有点,取最小的正整数。在

不,不可能。在模运算之后,有多个可能的起始值会得到相同的结果。如果要引用原始起始值,请保存对它的引用。在

写你自己的反模函数怎么样?在

def invmodp(a, p):
    for d in xrange(1, p):
        r = (d * a) % p
        if r == 1:
            break
    else:
        raise ValueError('%d has no inverse mod %d' % (a, p))
    return d

注意不是所有的集合都有逆模。。。在

相关问题 更多 >