Откройте контекст
Выберите папку проекта и обозначьте нужные файлы или поведение.
Подберите неубывающую последовательность к максимум 128 конечным наблюдениям в ±10^6 невзвешенным методом наименьших квадратов. Проверьте пустые и убывающие входы, отклоняя логические значения и сохраняя исходный список.
Выберите папку проекта и обозначьте нужные файлы или поведение.
Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.
Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
from math import isfinite
def isotonic_fit(values):
if type(values) is not list or len(values) > 128:
raise ValueError("bounded list")
if any(type(x) not in (int, float) or abs(x) > 10**6 or
not isfinite(x) for x in values):
raise ValueError("bounded finite values")
blocks = []
for value in values:
blocks.append([float(value), 1])
while len(blocks) > 1 and (
blocks[-2][0] / blocks[-2][1] > blocks[-1][0] / blocks[-1][1]):
total, count = blocks.pop()
blocks[-1][0] += total; blocks[-1][1] += count
return [total / count for total, count in blocks for _ in range(count)]Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.