Има ли някакъв модул, който може да обработва неидентифицирани променливи?

Добре, така че се опитвам да направя програма, която може да намери времето на кола, когато две коли се движат една от друга с определена скорост, всяка с различна скорост, която се дава само на < силна>ставкаизползвайки time=distance/rate. Но ще ми трябва израз с неразрешена променлива, за да реша проблеми като следните:

Car1 се движи с 20 мили в час. Car2 се движи с 10 мили в час по-бързо от Car1. 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

Има ли модул, който поддържа операции с недефинирани променливи с помощта на разпределителното свойство (т.е. който може да решава уравнения като това)?

Ако не, мога ли да имам малък пример за това как бих използвал неидентифицирани променливи без модул? Току-що прегледах това в училище.


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