是否有任何模块可以处理未识别的变量?

时间:2012-10-11 11:53:30

标签: python variables math algebra

好的,所以我试图制作一个程序,当两辆车以一定的速度彼此加速时,可以找到汽车的时间,每个车只有不同的速率给出使用时间=距离/率。但我需要一个带有未解决变量的表达式来执行以下问题:

Car1的速度是20英里每小时。 Car2的速度比Car1快10mph。 Car2比Car1晚了一个小时。 Car2需要多长时间才能赶上Car1?

我没有程序的工作:

t = Travel time total (in hours)

10*t = 20(t-1) # Note the 1 is for the 1 hour

# rearrange
10*t = 20*t - 20

# subtract 10*t from both sizes
0 = 10*t - 20

# add 20 to both sides
20 = 10*t

#divide both sizes by 10
2 = t

是否有一个模块支持使用分配属性对未定义变量进行操作(即可以解决类似这样的方程式)?

如果没有,我可以举一个小例子来说明如何在没有模块的情况下使用未识别的变量吗?我刚在学校里看过这个。

2 个答案:

答案 0 :(得分:6)

您要查找的模块名为SymPy

import sympy
t = sympy.Symbol('t') # set t as a variable/symbol
sympy.solve(sympy.Eq(10*t, 20*(t-1)), t) # which reads: solve the equation 10*t == 20*(t-1) for t.
# returns [2] (list of solutions to the equation)

(请参阅使用SymPy的更多quick examples)。

答案 1 :(得分:1)

这是你想要的吗?

def get_time(v1, v2, dt):
    t = (v2*dt)/(v2 - v1)
    return t

然后你可以用car1,car2和偏移的速度调用函数,它会返回你想要的时间。