Този тип задачи специално сигурно ги пишат с цел да объркат този който ги решава. Ние обаче да видим дали можем да игнорираме объркването изцяло и въобще да не мислим за решението, а просто да опишем проблема така като е и оставим Z3 да го реши:
- Код: Избери целия код
# V1=48 km/h V2=0 V3
# A >----------------(*)-------------------------------> B
# T1 T2=24 min ^ T3
# S1 S2=0 | S3
# 41.4km
Чертежа мисля, изяснява нещата като за начало.
Сега да напишем зависимостите без да се опитваме да опростяваме.
- Код: Избери целия код
from z3 import *
S, S1, S3, Tr, T1, T2, T3, T44, V1, V3 = \
Reals('S, S1, S3, Tr, T1, T2, T3, T44, V1, V3')
equations = [
S == V1*Tr,
S == S1 + S3,
S1 == V1 * T1,
V1 == 48,
S1 == S*30/100,
T2 == 24 / 60, # convert 24 to hours
V3 == V1 + 26 * 360 / 100, # convert 26 to km/h
T1+T2+T3 == Tr - 12/60, # convert 12 to hours
T1+T2+T3 == S1/V1 + T2 + S3/V3,
T44 == T1 + (41.4-S1)/V3
]
set_option(rational_to_decimal=True)
set_option(precision=2)
print ("Solution:")
solve(equations)
Резултата е:
- Код: Избери целия код
Solution:
[T1, = 0.38?,
Tr, = 1.29?,
S3, = 43.56?,
T44, = 0.54?,
T3, = 0.30?,
V3 = 141.6,
T2, = 0.4,
V1, = 48,
S1, = 18.67?,
S, = 62.24?]
S, = 62.24 км за а)
T44, = 0.54 часа за б)
Явно не става дума за България защото влака е вдигнал 141.6 км/ч. Франция може би.