Sobes.tech
Intern
16

Псевдокод sum_series(a={{1, 2}, {5, 1}}, b={{2, 4}, {3, 6}, {9, 7}}) -> {{1, 2}, {2, 6}, {3, 8}, {5, 7}, {9, 8}} def sum_series(a, b): result = [] i , j = 0, 0 val_a, val_b = 0, 0 while i < len(a) or j < len(b): a_next = a[i][0] if i < len(a) else float('inf') b_next = b[j][0] if j < len(b) else float('inf') if a_next < b_next: val_a = a[i][1] t = a[i][0] i += 1 else: val_b = b[j][1] t = b[j][0] j += 1 result.append((t, val_a + val_b)) return result

Companies where asked
Яндекс

Answer from AI

sobes.tech AI

Функция sum_series объединяет две серии временных рядов, каждая из которых представлена списком пар (время, значение). Она проходит по обеим сериям, сравнивая временные метки, и суммирует значения для совпадающих или ближайших времён, формируя новый ряд с объединёнными значениями.

Основная идея:

  • Используются два указателя i и j для прохода по спискам a и b.
  • На каждом шаге выбирается минимальное время из текущих элементов обеих серий.
  • Значения из обеих серий для этого времени суммируются (если в одной из серий нет значения для данного времени, используется последнее известное значение или 0).
  • Результат добавляется в итоговый список.

Пример работы:

# Входные данные
series_a = [(1, 2), (5, 1)]
series_b = [(2, 4), (3, 6), (9, 7)]

# Вызов функции
result = sum_series(series_a, series_b)
print(result)  # [(1, 2), (2, 6), (3, 8), (5, 7), (9, 8)]

Здесь для времени 1 значение из a равно 2, из b нет — сумма 2. Для времени 2 значение из b равно 4, из a последнее известное 2 — сумма 6 и так далее.