进入时
sympy.simplify(sympy.sqrt(3)/3)
它返回:sqrt(3)/ 3而不是1 / sqrt(3)
如何获得简化的表达方式?
特别是对于较大的数字将非常有用.
sympy.simplify(3/sympy.sqrt(3))
起作用,所以我认为优先考虑从分母中删除根吗?我该如何改变?
解决方法:
由于sympy使用象征性的东西,因此它作为输出格式打印为sqrt(3)/ 3.在内部,sqrt(3)/ 3与1 / sqrt(3)相同.因此,在计算上并没有真正的区别.
如果要将其翻转显示,可以尝试对顶部和底部进行平方,将其表示为分子和分母,然后分别对它们平方根,如下所示:
def stringify(frac):
if frac<0:
sign_str = "-"
else:
sign_str = ""
frac = frac ** 2
numer, denom = frac.as_numer_denom()
return sign_str + str(sympy.sqrt(numer)) + "/" + str(sympy.sqrt(denom))