Есть ли какой-нибудь модуль, который может обрабатывать неопознанные переменные?

Итак, я пытаюсь написать программу, которая может найти время автомобиля, когда две машины разгоняются друг от друга с определенной скоростью, каждая с разной скоростью, которая определяется только < strong>скорость, используя время=расстояние/скорость. Но мне нужно выражение с нерешенной переменной, чтобы решать такие задачи, как следующие:

Car1 едет со скоростью 20 миль в час. Автомобиль 2 едет на 10 миль в час быстрее, чем Автомобиль 1. Автомобиль 2 выехал на час позже, чем Автомобиль 1. Сколько времени потребуется 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

Есть ли модуль, который поддерживает операции с неопределенными переменными с использованием свойства распределения (т. е. который может решать уравнения, подобные этому)?

Если нет, то могу ли я иметь небольшой пример того, как я буду использовать неопознанные переменные без модуля? Я только что проходил это в школе.


person Tom    schedule 11.10.2012    source источник
comment
дубликат для stackoverflow.com/questions /10499941/   -  person zenpoy    schedule 11.10.2012
comment
В качестве предупреждения, пожалуйста, прекратите подпрыгивать между откатами правок, чтобы вывести свой вопрос на первую страницу. Это злоупотребление системой редактирования.   -  person Brad Larson    schedule 12.10.2012
comment
Мне жаль. Я на самом деле не знал, что это так. Я был просто счастлив, потому что на мой вопрос ответили. Извиняюсь.   -  person Tom    schedule 12.10.2012


Ответы (2)


Модуль, который вы ищете, называется 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).

person Andy Hayden    schedule 11.10.2012
comment
Не знал про этот модуль, хороший. - person Josh Smeaton; 12.10.2012

Это то, что вы хотите?

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

Затем вы можете вызвать функцию со скоростями car1, car2 и смещением, и она вернет нужное вам время.

person dvreed77    schedule 11.10.2012