Costo di catene di matrici
Trova il costo minimo di moltiplicazioni scalari per una catena di al massimo 12 matrici.
def chain_cost(dimensions):
if type(dimensions) not in (list, tuple) or not 2 <= len(dimensions) <= 13:
raise ValueError("one through twelve matrices")
if any(type(d) is not int or not 1 <= d <= 1000 for d in dimensions):
raise ValueError("dimensions 1 through 1000")
n = len(dimensions)-1
cost = [[0]*n for _ in range(n)]
for width in range(2, n+1):
for left in range(n-width+1):
right = left+width-1
cost[left][right] = min(
cost[left][k]+cost[k+1][right]+
dimensions[left]*dimensions[k+1]*dimensions[right+1]
for k in range(left,right))
return cost[0][n-1]| Progetto | Prova una matrice e diverse parentesizzazioni, rifiutando dimensioni fuori da 1–1000 senza moltiplicare elementi matriciali. |
|---|---|
| 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. |
def chain_cost(dimensions):
if type(dimensions) not in (list, tuple) or not 2 <= len(dimensions) <= 13:
raise ValueError("one through twelve matrices")
if any(type(d) is not int or not 1 <= d <= 1000 for d in dimensions):
raise ValueError("dimensions 1 through 1000")
n = len(dimensions)-1
cost = [[0]*n for _ in range(n)]
for width in range(2, n+1):
for left in range(n-width+1):
right = left+width-1
cost[left][right] = min(
cost[left][k]+cost[k+1][right]+
dimensions[left]*dimensions[k+1]*dimensions[right+1]
for k in range(left,right))
return cost[0][n-1]Distingui un piano calcolato dal lavoro che rappresenta
ChainArbor offre alla pianificazione computazionale uno spazio di lavoro Windows in cui discutere le ipotesi con un modello collegato. Inizia identificando che cosa restituisce davvero una funzione di pianificazione e chi ne usa il risultato. Una stima del costo, un ordine di esecuzione e un'operazione eseguita sono output diversi: una richiesta di modifica utile esplicita questa distinzione.
L'attività di esempio fornita è la pianificazione del costo di una catena di matrici. Puoi chiedere all'assistente di rivedere la validazione delle dimensioni e il costo aritmetico riportato prima di estendere l'applicazione circostante. Includi il chiamante e le sue aspettative, affinché una modifica proposta non presenti per errore un costo minimo come se fosse una sequenza di moltiplicazioni o una matrice risultante già calcolata.
Usa la conversazione per esplicitare queste decisioni di interfaccia, poi esamina le modifiche al sorgente. Verifica piccole sequenze di dimensioni con costi stabiliti indipendentemente, incluso il caso di una sola matrice, ed esegui i test del progetto. Se in seguito richiedi un piano di esecuzione, considera rappresentazione e verifica come requisiti aggiuntivi, senza supporre che derivino dal calcolo del costo.
Per scegliere un modello IA senza filtri, collega un servizio supportato compatibile con OpenAI o Anthropic che offra il modello desiderato. Credenziali, supporto degli strumenti e limiti di contesto dipendono da questa configurazione. Lo spazio di lavoro non aggira le restrizioni del fornitore; aiuta a collegare le modifiche proposte al codice e a criteri di accettazione esaminabili.
Domande per chiarire l'ambito del codice di pianificazione
Che cosa devo chiedere se mi serve un ordine di esecuzione?
Richiedi una rappresentazione esplicita dell'ordine e descrivi come il chiamante la userà. Una funzione che riporta il costo aritmetico minimo potrebbe non produrla. Includi esempi di verifica sia per il piano sia per il costo riportato.
Perché provare una catena contenente una sola matrice?
Definisce il comportamento di base quando non serve alcuna moltiplicazione. Includilo insieme a un piccolo esempio con più matrici, così la proposta dell'assistente viene verificata sia sul limite sia sulla logica di pianificazione usata per catene più lunghe.
Lo spazio di lavoro può verificare i risultati numerici effettivi delle matrici?
Per quei risultati usa gli strumenti numerici e i test del progetto. Lo spazio di lavoro supporta discussione e revisione delle modifiche proposte; un caso di prova corretto sul costo non dimostra che un'implementazione separata della moltiplicazione produca valori corretti.
Come impedisco che una rifattorizzazione del costo ampli l'interfaccia?
Indica nella richiesta il tipo restituito attuale e il comportamento richiesto al chiamante. Controlla nel diff nuovi output o unità cambiate. Se vuoi un piano più ricco, definiscilo come intervento successivo deliberato, non come effetto incidentale della rifattorizzazione.
ChainArbor · Aggiornato 2026-10-25