CChainArbor
Espace de développement avec IA

Coût d’une chaîne de matrices

Trouvez le coût minimal en multiplications scalaires d’une chaîne d’au plus 12 matrices.

● ● ●ChainArbor●
Méthodes de travail · Coût d’une chaîne de 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]
✳Trouvez le coût minimal en multiplications scalaires d’une chaîne d’au plus 12 matrices.
✓ ModificationsVérifiez avant d’appliquer ↗
Illustration de l’espace de travail
ProjetTestez une seule matrice et plusieurs parenthésages, en rejetant les dimensions hors de 1 à 1000 sans multiplier les éléments matriciels.
Vérifiez avant d’appliquerComparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
ModèlesConfigurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
Méthodes de travail

Coût d’une chaîne de matrices

Méthodes de travail ↗
Méthodes de travail
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]
Espace de développement avec IA

Distinguez le plan calculé du travail qu’il représente

ChainArbor offre un espace de programmation sous Windows pour discuter des hypothèses de planification des calculs avec un modèle connecté. Commencez par identifier ce que renvoie réellement une fonction de planification et qui le consomme. Une estimation de coût, un ordre d’exécution et une opération exécutée sont des sorties différentes ; une demande de modification utile explicite cette distinction.

L’exemple fourni concerne la planification du coût d’une chaîne de matrices. Vous pouvez demander à l’assistant d’examiner la validation des dimensions et le coût arithmétique rapporté avant d’étendre l’application environnante. Incluez l’appelant et ses attentes pour éviter qu’une modification présente accidentellement un coût minimal comme un ordre de multiplication ou un résultat matriciel déjà calculé.

Utilisez la conversation pour expliciter ces choix d’interface, puis examinez les modifications du code source. Vérifiez de courtes séquences de dimensions avec des coûts établis indépendamment, notamment le cas d’une seule matrice, et exécutez les tests du projet. Si vous demandez ensuite un plan d’exécution, considérez sa représentation et sa vérification comme des exigences supplémentaires, sans supposer qu’elles découlent du calcul du coût.

Pour choisir un modèle d’IA sans filtrage, connectez un service compatible OpenAI ou Anthropic pris en charge qui propose le modèle voulu. Les identifiants, les outils pris en charge et les limites de contexte dépendent de cette configuration. L’espace de travail ne contourne pas les restrictions du fournisseur ; il aide à relier les modifications de planification proposées au code source et aux critères d’acceptation que vous pouvez examiner.

Questions pour préciser la portée du code de planification

Que demander si j’ai besoin d’un ordre d’exécution ?

Demandez une représentation explicite de cet ordre et décrivez comment l’appelant l’utilisera. Une fonction rapportant le coût arithmétique minimal ne produit pas nécessairement cette représentation. Incluez des exemples de vérification du plan et du coût rapporté.

Pourquoi tester une chaîne contenant une seule matrice ?

Ce cas définit le comportement de base lorsqu’aucune multiplication n’est nécessaire. Incluez-le avec un petit exemple à plusieurs matrices pour vérifier la proposition de l’assistant aux limites et dans la logique de planification des chaînes plus longues.

L’espace de travail peut-il vérifier les résultats numériques réels des matrices ?

Utilisez les outils numériques et les tests de votre projet pour ces résultats. L’espace de programmation facilite la discussion et la revue des modifications proposées ; un jeu de test correct pour le coût ne prouve pas qu’une implémentation distincte de multiplication produit des valeurs correctes.

Comment empêcher une refactorisation du coût d’étendre son interface ?

Précisez dans la demande le type de retour actuel et le comportement attendu de l’appelant. Examinez le diff pour détecter de nouvelles sorties ou des unités modifiées. Si un plan plus riche est souhaité, définissez-le comme une étape ultérieure délibérée plutôt qu’un effet accessoire de la refactorisation.

Télécharger pour Windows ↗

ChainArbor · Mis à jour 2026-10-25