Massimi delle finestre scorrevoli
Trova il massimo di ogni finestra numerica completa a larghezza fissa.
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| Controlla prima di applicare | Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche. |
|---|---|
| Modelli | Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente. |
| Progetto | Controlla massimi ripetuti, valori negativi e limiti della larghezza, rifiutando valori non finiti e larghezze esterne alla lunghezza dell’input. |
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 resultMantieni una modifica al calcolo collegata al suo output
WindowRidge è un ambiente di programmazione con IA per Windows per discutere modifiche nel contesto del progetto che le utilizzerà. Parti dall'output atteso dall'applicazione e identifica il sorgente che lo produce. Chiedi al modello collegato di esaminare il percorso attuale prima di proporre una sostituzione, così che i dettagli implementativi restino legati a un requisito visibile.
Un calcolo dei massimi su finestre di ampiezza fissa è un'attività utile. Specifica che ogni risultato corrisponde a una finestra completa e includi il chiamante che associa i risultati alle posizioni di input. Discuti massimi ripetuti, valori negativi e limiti validi dell'ampiezza prima di chiedere una modifica. Questo dà alla revisione un contratto che va oltre l'ottenere il numero più grande in un breve esempio.
Usa i test del progetto per confrontare l'output proposto con casi di prova espliciti. Controlla numero e allineamento dei risultati oltre ai valori, includendo un'ampiezza di uno e un'ampiezza pari alla lunghezza dell'input. Se la modifica mira a migliorare l'efficienza, misurala sul tuo carico di lavoro invece di dedurre una garanzia di velocità da un'implementazione diversa.
Collega un endpoint supportato compatibile con OpenAI o Anthropic per scegliere il modello per WindowRidge. Un modello di IA senza restrizioni potrebbe essere disponibile presso quel fornitore, con credenziali quando richieste. Comportamento del modello, capacità di contesto e supporto degli strumenti dipendono dal collegamento effettivo; accettare una modifica al calcolo richiede comunque la tua revisione e verifica.
Pianificare una modifica ai calcoli a finestra
- Perché mostrare chi utilizza l'output oltre alla procedura?
Il codice utilizzatore può associare ogni valore a una particolare posizione di input. Una modifica può conservare i massimi spostando però tale associazione. Includi il chiamante e definisci quale finestra rappresenta ogni output, così che la revisione copra sia l'allineamento sia l'aritmetica.
- Quali ampiezze includere in un piccolo insieme di casi di prova?
Usa uno, l'intera lunghezza dell'input e un'ampiezza non valida, accanto al caso ordinario necessario all'applicazione. Specifica la regola di rifiuto per i valori non validi. Verifica sia i valori sia il numero dei risultati con i controlli esistenti del progetto.
- Come posso valutare un suggerimento legato all'efficienza?
Conferma prima l'equivalenza del comportamento sui casi di prova. Poi misura la soluzione candidata con dati rappresentativi e i tuoi strumenti. La spiegazione di un approccio da parte del modello è un contesto utile alla revisione, ma non è una prova delle prestazioni nell'applicazione.
- I massimi ripetuti richiedono attenzione particolare?
Includili perché un'implementazione potrebbe tenere traccia delle posizioni candidate oltre che dei valori. Chiedi una spiegazione di come i vecchi candidati escono dalla finestra, poi confronta il comportamento proposto con una sequenza attesa esplicita prima di accettare la modifica.
WindowRidge · Aggiornato 2026-10-25