Coste de cadenas de matrices
Encuentra el coste mínimo de multiplicaciones escalares de una cadena de hasta 12 matrices.
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]| Proyecto | Prueba una matriz y distintas asociaciones, rechazando dimensiones fuera de 1 a 1000 sin multiplicar elementos matriciales. |
|---|---|
| Revisa antes de aplicar | Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios. |
| Modelos | Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado. |
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]Distingue un plan calculado del trabajo que representa
ChainArbor ofrece un espacio de programación para Windows donde analizar los supuestos de la planificación computacional con un modelo conectado. Empieza por identificar qué devuelve realmente una función de planificación y quién utiliza su resultado. Una estimación de coste, un orden de ejecución y una operación ejecutada son salidas distintas; una solicitud de cambio útil explicita esa distinción.
La tarea de ejemplo suministrada es la planificación del coste de una cadena de matrices. Puedes pedir al asistente que revise la validación de dimensiones y el coste aritmético comunicado antes de ampliar la aplicación. Incluye el código que llama a la función y sus expectativas para evitar que un cambio propuesto presente accidentalmente un coste mínimo como si fuera un programa de multiplicaciones o un resultado matricial ya calculado.
Usa la conversación para explicitar esas decisiones de interfaz y después inspecciona los cambios de código resultantes. Comprueba secuencias pequeñas de dimensiones con costes determinados de forma independiente, incluido el caso de una sola matriz, y ejecuta las pruebas del proyecto. Si más adelante solicitas un plan de ejecución, trata su representación y verificación como requisitos adicionales en lugar de asumir que se derivan del cálculo del coste.
Para elegir un modelo de IA sin filtros, conecta un servicio admitido compatible con OpenAI o de Anthropic que ofrezca el modelo deseado. Las credenciales, la compatibilidad con herramientas y los límites de contexto dependen de esa configuración. El espacio de trabajo no anula las restricciones del proveedor; ayuda a relacionar los cambios de planificación propuestos con el código y con criterios de aceptación que puedas revisar.
Preguntas para aclarar el alcance del código de planificación
¿Qué debo pedir si necesito un orden de ejecución?
Solicita una representación explícita del orden y describe cómo la utilizará el código que llama a la función. Una función que comunica el coste aritmético mínimo puede no producir esa representación. Incluye ejemplos de verificación tanto del plan como del coste comunicado.
¿Por qué probar una cadena de una sola matriz?
Define el comportamiento básico cuando no hace falta multiplicar. Incluye ese caso junto con un ejemplo pequeño de varias matrices para comprobar la propuesta del asistente tanto en el límite como en la lógica de planificación usada para cadenas más largas.
¿Puede el espacio de trabajo verificar resultados numéricos de matrices?
Usa las herramientas numéricas y las pruebas de tu proyecto para esos resultados. El espacio de programación permite analizar y revisar cambios propuestos; un caso de prueba de coste correcto no demuestra que una implementación de multiplicación independiente produzca valores correctos.
¿Cómo evito que una refactorización del coste amplíe su interfaz?
Indica en la solicitud el tipo devuelto actualmente y el comportamiento exigido al código que llama a la función. Revisa las diferencias en busca de salidas nuevas o unidades modificadas. Si quieres un plan más detallado, defínelo como una tarea posterior deliberada y no como una refactorización incidental.
ChainArbor · Actualizado 2026-10-25