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

Максимальный прямоугольник гистограммы

BarCumulus — ИИ-клиент Windows для проверки алгоритмов, превращающих высоты столбцов в максимальную площадь. Откройте папку проекта, обсудите границы стека с совместимой моделью и проверьте её правки на равных высотах и пустом вводе.

● ● ●BarCumulus●
Конкретная отправная точка · Максимальный прямоугольник гистограммы ×
def histogram_area(heights):
    heights = tuple(heights)
    if len(heights) > 256 or any(type(h) is not int or not 0 <= h <= 1000000 for h in heights):
        raise ValueError("height.range")
    stack, best = [], 0
    for i in range(len(heights) + 1):
        current = heights[i] if i < len(heights) else 0
        while stack and heights[stack[-1]] > current:
            height = heights[stack.pop()]
            start = stack[-1] + 1 if stack else 0
            best = max(best, height * (i - start))
        stack.append(i)
    return best
✳Найдите максимальный прямоугольник под столбцами единичной ширины с не более чем 256 целочисленными высотами от нуля до 1000000.
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
01

Проект

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

02

Проверьте перед применением

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

03

Подключение

Базовый URL, учётные данные и доступный сервер.

Сценарии

Максимальный прямоугольник гистограммы

Сценарии ↗
Конкретная отправная точка
def histogram_area(heights):
    heights = tuple(heights)
    if len(heights) > 256 or any(type(h) is not int or not 0 <= h <= 1000000 for h in heights):
        raise ValueError("height.range")
    stack, best = [], 0
    for i in range(len(heights) + 1):
        current = heights[i] if i < len(heights) else 0
        while stack and heights[stack[-1]] > current:
            height = heights[stack.pop()]
            start = stack[-1] + 1 if stack else 0
            best = max(best, height * (i - start))
        stack.append(i)
    return best
Рабочая среда с ИИ для кода

Определите, что должен сохранить рефакторинг, прежде чем менять форму

BarCumulus — среда программирования с ИИ для Windows, помогающая проверять изменение реализации без утраты поведения, которое она должна сохранять. Откройте папку проекта и объясните цель рефакторинга: более ясное состояние, меньшая вспомогательная функция или более удобное тестирование. Попросите модель изучить существующий контракт до предложения замены.

Можно подключить модель ИИ без цензуры, если она предлагается вашей поддерживаемой конечной точкой, совместимой с OpenAI или Anthropic. При необходимости добавьте учётные данные. Ограничения провайдера, возможности инструментов и пределы контекста сохраняются, поэтому используйте обсуждение для выработки проверяемых обоснований, не считая иначе выглядящую реализацию улучшением саму по себе.

Один из примеров — расчёт максимального прямоугольника по высотам столбцов. Запросите проверку обработки плато, пустого ввода и оставшейся в конце работы. Добавьте небольшие тестовые примеры с проверенными вручную результатами, затем спросите модель, какие части рефакторинга сохраняют эти случаи, а какие меняют.

Изучите итоговый diff и запустите проверки проекта на той самой версии, которую собираетесь оставить. Для сложных изменений сравните результат с независимой простой реализацией на небольших входах. Сравнение даёт свидетельства в проверенном диапазоне; оно не превращает среду программирования в систему автоматического доказательства.

Обоснованная проверка рефакторинга

Какова полезная причина запроса рефакторинга алгоритма?

Назовите оцениваемую проблему сопровождения, например неясные переходы состояния или дублирующуюся обработку. Запросите минимальное предложение, решающее её. Замена должна оправдывать себя читаемостью и проверенным поведением, а не одной новизной.

Зачем включать в тесты столбцы одинаковой высоты?

Равные значения выявляют предпосылки о том, когда сохраняется или удаляется отложенное состояние. Добавьте короткое плато с известным ожидаемым результатом. До изучения больших примеров попросите модель объяснить этот тест относительно предлагаемой реализации.

Доказывает ли дифференциальное тестирование эквивалентность двух реализаций?

Оно поддерживает эквивалентность на проверенных входах и может выявлять расхождения. Держите диапазон входов и эталонную реализацию явными и исследуйте различия. Не называйте конечное тестирование доказательством для всех возможных входов рабочей функции.

Как проверять предложенный скрипт сравнения?

До запуска прочитайте его границы входных данных и план выполнения. Уточните и адресатов инструментов: локальному инференсу модели нужен отдельный сервер, и он не делает каждый подключённый инструмент выполнения локальным. Намеренно ограничивайте тестовую нагрузку.

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

BarCumulus · Обновлено 2026-10-25