Максимуми ковзного вікна
Знайдіть максимум кожного повного числового вікна сталої ширини.
from collections import deque
from math import isfinite
def window_max(values, width):
if type(width) is not int or not 1 <= width <= len(values):
raise ValueError("width")
if not all(map(isfinite, values)): raise ValueError("finite values")
queue, result = deque(), []
for i, value in enumerate(values):
while queue and queue[0] <= i - width: queue.popleft()
while queue and values[queue[-1]] <= value: queue.pop()
queue.append(i)
if i >= width - 1: result.append(values[queue[0]])
return result| Перевірте перед застосуванням | Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами. |
|---|---|
| Моделі | Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані. |
| Проєкт | Перевірте повторні максимуми, від’ємні значення й межі ширини, відхиляючи нескінченні значення та ширину поза довжиною входу. |
from collections import deque
from math import isfinite
def window_max(values, width):
if type(width) is not int or not 1 <= width <= len(values):
raise ValueError("width")
if not all(map(isfinite, values)): raise ValueError("finite values")
queue, result = deque(), []
for i, value in enumerate(values):
while queue and queue[0] <= i - width: queue.popleft()
while queue and values[queue[-1]] <= value: queue.pop()
queue.append(i)
if i >= width - 1: result.append(values[queue[0]])
return resultЗберігайте зв’язок зміни обчислення з його результатом
WindowRidge — середовище програмування з ШІ для Windows для обговорення змін у контексті проєкту, який їх використовуватиме. Почніть із результату, якого очікує застосунок, і визначте код, який його створює. Попросіть підключену модель дослідити поточний шлях перед пропозицією заміни, щоб деталі реалізації залишалися пов’язаними з видимою вимогою.
Обчислення максимуму у вікні сталої ширини — одне з корисних завдань. Укажіть, що кожен результат відповідає повному вікну, і додайте код виклику, який пов’язує результати з позиціями вхідних даних. Обговоріть повторювані максимуми, від’ємні значення й допустимі межі ширини перед запитом правки. Це дає перевірці контракт ширший, ніж отримання найбільшого числа в короткому прикладі.
Тестами проєкту порівнюйте запропонований результат із явними тестовими даними. Перевіряйте кількість і прив’язку результатів, а також значення, зокрема для ширини один і ширини, рівної довжині вхідних даних. Якщо зміна має поліпшити ефективність, вимірюйте її на власному навантаженні, а не виводьте гарантію швидкості з іншої реалізації.
Підключіть підтримувану кінцеву точку, сумісну з OpenAI, або Anthropic, щоб вибрати модель для WindowRidge. Через цього постачальника може бути доступна модель ШІ без обмежень, за потреби з обліковими даними. Поведінка моделі, місткість контексту й підтримка інструментів залежать від фактичного підключення; прийняття зміни обчислення все одно потребує вашого огляду й перевірки.
Планування правки віконного обчислення
- Навіщо показувати споживача результату разом із процедурою?
Споживач може пов’язувати кожне значення з певною вхідною позицією. Правка може зберегти максимуми, але змістити цю прив’язку. Додайте код виклику й визначте, яке вікно представляє кожен результат, щоб перевірка охоплювала прив’язку та арифметику.
- Які випадки ширини входять до невеликого набору тестів?
Використайте один, повну довжину вхідних даних і некоректну ширину разом зі звичайним випадком, потрібним застосунку. Укажіть політику відхилення некоректних значень. Перевірте значення та кількість результатів наявними перевірками проєкту.
- Як оцінити пропозицію щодо ефективності?
Спочатку підтвердьте рівнозначну поведінку на своїх тестових даних. Потім виміряйте варіант на типових даних власними засобами. Пояснення підходу моделлю є корисним контекстом перевірки, але не доказом швидкодії у вашому застосунку.
- Чи потребують повторювані максимуми окремої уваги?
Додайте їх, бо реалізація може відстежувати позиції кандидатів поряд зі значеннями. Попросіть пояснити, як старі кандидати залишають вікно, потім порівняйте запропоновану поведінку з явною очікуваною послідовністю перед прийняттям правки.
WindowRidge · Оновлено 2026-10-25