我嘗試了以下操作:>>> from sympy import *>>> k,m,n = symbols("k m n", integer=True)>>> (3*k+4)%2 - k%20? ? ? ? ? ? ? ? ? ?# it works with the fix above. Thank you!>>> p = Wild('p')>>> q = Wild('q')>>> e = (2*k+7)%5 + 7*k+7>>> e7*k + Mod(2*k + 2, 5) + 7>>> e.match(p%5+p)>>> e.match((p+5*q)%5+p)>>> e.match(p%5+p+5*q){q_: k + 1, p_: 2*k + 2}我希望第一個或第二個e.match對我有用({p:7*k+7}第一個和{p:7*k+7,q:-k}第二個),但事實并非如此。這是一個錯誤嗎?如果是,是否有修復/解決方法?
1 回答

守候你守候我
TA貢獻1802條經驗 獲得超10個贊
match 的數學知識非常有限。它不知道2*k
中的Mod
可以替換為7*k
。
我不確定這是否容易解決。match 已經非常復雜,因為它所做的數學匹配有限??赡苄枰玫脑O計來解決此類問題。實際上,這讓我覺得是您需要 SMT 求解器來解決的那種問題,但也許有更簡單的算法可以做到這一點。
抱歉,這并沒有直接回答如何解決問題。
添加回答
舉報
0/150
提交
取消