我想用sympy
解决以下简单的等式2^(x-y)=1
其中x和y是+ ve整数
我的预期结果是
x=y
当我尝试使用sympy解决时
x = Symbol('x')
y = Symbol('y')
solve(2**(x-y)-1, x)
我得到以下结果
[log(2**y)/log(2)]
我必须遵循哪些额外步骤才能获得预期结果
答案 0 :(得分:5)
由于对数和指数对于复数而言是棘手的,因此变量应该被声明为真实的。在复数中,2 ^(x-y)= 1 不意味着x = y。
from sympy import *
x,y = symbols('x,y', real=True)
solve(2**(x-y)-1, x)[0]
结果:y
(相关函数:expand_log
,虽然在此示例中不需要它。)