OOrderSaffron
Сценарии

Сценарии работы с кодом · Невзвешенная изотоническая регрессия

03
Вокруг ваших задач

Конкретная отправная точка

Подберите неубывающую последовательность к максимум 128 конечным наблюдениям в ±10^6 невзвешенным методом наименьших квадратов. Проверьте пустые и убывающие входы, отклоняя логические значения и сохраняя исходный список.

01

Откройте контекст

Выберите папку проекта и обозначьте нужные файлы или поведение.

02

Опишите изменение

Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.

03

Изучите работу

Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.

04

Проверьте результат

Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.

Невзвешенная изотоническая регрессия

Конкретная отправная точка
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)]

Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.

Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗