Задача 5: Оценивайте деление

Напишите определение функции calcEquation(equations, values, queries), которая принимает:

  1. equations: список пар строк, представляющих уравнения;
  2. values: список вещественных чисел, представляющих значения делений;
  3. queries: список пар строк, представляющих запросы.

Функция должна возвращать список вещественных чисел, представляющих результаты делений для каждого запроса. Если результат для какого-либо запроса невозможно определить, необходимо вернуть -1.0.


Пример 1

Ввод:

equations = [["a","b"],["b","c"]]  
values = [2.0, 3.0]  
queries = [["a","c"],["b","a"],["a","e"],["a","a"],["x","x"]]  

Вывод:

[6.0, 0.5, -1.0, 1.0, -1.0]

Объяснение:

  • Дано: a / b = 2.0, b / c = 3.0.
  • Запросы:
    • a / c = 2.0 * 3.0 = 6.0
    • b / a = 1 / 2.0 = 0.5
    • a / e-1.0 (переменная e неизвестна)
    • a / a = 1.0 (любая переменная делится на себя как 1.0)
    • x / x-1.0 (переменная x неизвестна).

Пример 2

Ввод:

equations = [["a","b"],["b","c"],["bc","cd"]]  
values = [1.5, 2.5, 5.0]  
queries = [["a","c"],["c","b"],["bc","cd"],["cd","bc"]]  

Вывод:

[3.75, 0.4, 5.0, 0.2]

Объяснение:

  • Дано:
    • a / b = 1.5
    • b / c = 2.5
    • bc / cd = 5.0.
  • Запросы:
    • a / c = 1.5 * 2.5 = 3.75.
    • c / b = 1 / (b / c) = 1 / 2.5 = 0.4.
    • bc / cd = 5.0.
    • cd / bc = 1 / (bc / cd) = 1 / 5.0 = 0.2.

Пример 3

Ввод:

equations = [["a","b"]]  
values = [0.5]  
queries = [["a","b"],["b","a"],["a","c"],["x","y"]]  

Вывод:

[0.5, 2.0, -1.0, -1.0]

Объяснение:

  • Дано: a / b = 0.5.
  • Запросы:
    • a / b = 0.5.
    • b / a = 1 / 0.5 = 2.0.
    • a / c-1.0 (переменная c неизвестна).
    • x / y-1.0 (переменные x и y неизвестны).

0

Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии