def matrix_product(left, right):
left, right = [tuple(r) for r in left], [tuple(r) for r in right]
widths = []
for matrix in (left, right):
width = len(matrix[0]) if matrix else 0
if len(matrix) > 64 or width > 64 or any(len(r) != width for r in matrix):
raise ValueError("matrix.shape")
if any(type(v) is not int for r in matrix for v in r):
raise ValueError("cell.integer")
widths.append(width)
if widths[0] != len(right):
raise ValueError("matrix.incompatible")
return [[sum(row[k] * right[k][j] for k in range(widths[0]))
for j in range(widths[1])] for row in left]
✳Vermenigvuldig rechthoekige gehele matrices met elk maximaal 64 rijen en kolommen.
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Project
Test lege invoer en één cel en weiger ongelijke rijen, onverenigbare dimensies en booleaanse cellen zonder de matrices te wijzigen.
def matrix_product(left, right):
left, right = [tuple(r) for r in left], [tuple(r) for r in right]
widths = []
for matrix in (left, right):
width = len(matrix[0]) if matrix else 0
if len(matrix) > 64 or width > 64 or any(len(r) != width for r in matrix):
raise ValueError("matrix.shape")
if any(type(v) is not int for r in matrix for v in r):
raise ValueError("cell.integer")
widths.append(width)
if widths[0] != len(right):
raise ValueError("matrix.incompatible")
return [[sum(row[k] * right[k][j] for k in range(widths[0]))
for j in range(widths[1])] for row in left]
AI-werkruimte voor code
Controleer de structuur rond een berekening, niet alleen de formule
MatrixCairn biedt een AI-programmeeromgeving voor Windows om te werken aan code die gestructureerde numerieke gegevens accepteert. Voeg de relevante projectbestanden toe en beschrijf toegestane vormen, waardetypen en het door de aanroeper verwachte resultaat. Vraag het model validatie en berekening samen te onderzoeken. Zo kun je beter beoordelen of een voorgestelde wijziging de benodigde toepassingsstructuur behoudt, ook als afzonderlijke berekeningen redelijk lijken.
Bij een taak met matrix.py kun je onderzoeken hoe onverenigbare afmetingen of ongelijke rijen vóór matrixvermenigvuldiging worden afgewezen. Vraag de assistent de huidige aannames uit te leggen en zo nodig een nauw afgebakende correctie voor te stellen. Gebruik expliciete invoer- en uitvoervoorbeelden, inclusief de lege vormen die je project toestaat. Het doel is je implementatie met beoordeelbaar bewijs te verbeteren, niet wiskundige correctheid uit een nette functie af te leiden.
Voer na inspectie van de wijzigingen de projectcontroles uit en bevestig hoe ongeldige invoer de afnemer bereikt. Neem de grensafmetingen op die je werkelijk ondersteunt in plaats van alleen op een klein geslaagd voorbeeld te vertrouwen. Een ongefilterd model kan via een ondersteund OpenAI-compatibel of Anthropic-endpoint worden verbonden als het wordt aangeboden, met inloggegevens waar nodig. Bij MatrixCairn blijven tools, contextcapaciteit en modelbeperkingen afhankelijk van die geconfigureerde dienst; de softwareomgeving ondersteunt het gesprek terwijl jij de berekening verifieert.
Vragen over gestructureerde invoer voor MatrixCairn
Wat betekent een ongelijke rij voor deze taak?
Bepaal of de toepassing die afwijst of vóór de berekening transformeert. Laat geen toevallige iteratieregel beslissen. Vraag de assistent te onderzoeken waar dat beleid thuishoort en verifieer de fout die de aanroeper ontvangt.
Moet ik alleen de berekende celwaarden testen?
Controleer ook de uitvoerafmetingen en de relatie tussen rijen en kolommen. Enkele correcte waarden bewijzen niet dat het resultaat de door vervolgcode verwachte vorm heeft, vooral na wijzigingen in de verwerking van lege invoer.
Hoe beïnvloeden groottelimieten een beoordeling?
Vermeld de ondersteunde grenzen en onderzoek waar ze worden afgedwongen. Test geaccepteerde grensafmetingen en een te groot geval. Limieten in een voorbeeld zijn geen prestatiegarantie voor je toepassing en geen toestemming om runtimecontroles over te slaan.
Wat als de aanroeper een ander numeriek type aanlevert?
Bepaal of dat type bij de afspraken hoort en onderzoek vervolgens expliciet conversie of afwijzing. Een ruimere toelating kan later berekening en serialisatie beïnvloeden; beoordeel dus het volledige pad in plaats van zonder reden meer waarden te accepteren.