求解一元一次方程的正整數解(Python版本)


eq = input()
eq1 = eq.replace("=","-(") + ")"
c = eval(eq1, {'X': 1j})
print(int(-c.real/c.imag))

例如:solve("x - 2x + 5x - 46(235-24) = x + 2") 下面就來解讀下代碼吧。 首先是第一行(除input()),它將等式進行了變形,生成了一個結果為0的算式 “x - 2x + 5x - 46(235-24) -( x + 2)”。

第二行用eval來執行這個算式,並將x = 1j代入算式,結果是-9708+3j。

注意x = 1j,所以這個方程就化簡為“-9708+3x = 0”了,只要將-(-9708) / 3就能得到x了。

而-9708是這個復數的實部,3是這個復數的虛部,於是結果變成了“-c.real/c.imag”。

因此很顯然,這個函數是不能解復數方程的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM