CChainArbor
Środowisko programowania z AI

Koszt łańcucha macierzy

Wyznacz minimalny koszt mnożeń skalarnych łańcucha do 12 macierzy.

● ● ●ChainArbor●
Sposoby pracy · Koszt łańcucha macierzy ×
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]
✳Wyznacz minimalny koszt mnożeń skalarnych łańcucha do 12 macierzy.
✓ ZmianySprawdź przed zastosowaniem ↗
Ilustracja środowiska
ProjektSprawdź jedną macierz i różne nawiasowania, odrzucając wymiary spoza 1–1000 bez mnożenia elementów macierzy.
Sprawdź przed zastosowaniemPorównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
ModeleDodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
Sposoby pracy

Koszt łańcucha macierzy

Sposoby pracy ↗
Sposoby pracy
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]
Środowisko programowania z AI

Oddziel obliczony plan od działań, które opisuje

ChainArbor udostępnia środowisko programistyczne dla Windows do pracy nad planowaniem obliczeń i omawiania założeń z podłączonym modelem. Najpierw określ, co funkcja planująca rzeczywiście zwraca i kto korzysta z wyniku. Oszacowanie kosztu, kolejność wykonania i wykonana operacja to różne wyniki; użyteczne zlecenie zmiany wyraźnie je rozróżnia.

Dostarczony przykład dotyczy planowania kosztu mnożenia łańcucha macierzy. Przed rozszerzeniem aplikacji możesz poprosić asystenta o przegląd walidacji wymiarów i raportowanego kosztu arytmetycznego. Dołącz kod wywołujący i jego oczekiwania, aby proponowana zmiana nie przedstawiała minimalnego kosztu jako harmonogramu mnożeń lub gotowego wyniku macierzowego.

W rozmowie ujawnij te decyzje dotyczące interfejsu, a potem przejrzyj wynikowe zmiany źródeł. Sprawdź krótkie ciągi wymiarów o niezależnie ustalonych kosztach, w tym przypadek jednej macierzy, i uruchom testy projektu. Jeśli później zażądasz planu wykonania, potraktuj jego reprezentację i weryfikację jako dodatkowe wymagania, zamiast zakładać, że wynikają z obliczenia kosztu.

Aby wybrać model AI bez filtrów, podłącz obsługiwaną usługę zgodną z OpenAI lub usługę Anthropic oferującą wybrany model. Dane uwierzytelniające, obsługa narzędzi i limity kontekstu zależą od konfiguracji. Środowisko nie znosi ograniczeń dostawcy; pomaga powiązać proponowane zmiany planowania ze źródłami i kryteriami akceptacji, które możesz przejrzeć.

Pytania określające zakres kodu planowania

O co poprosić, jeśli potrzebuję kolejności wykonania?

Poproś o jawną reprezentację kolejności i opisz, jak wykorzysta ją kod wywołujący. Funkcja raportująca minimalny koszt arytmetyczny może nie tworzyć takiej reprezentacji. Podaj przykłady weryfikujące zarówno plan, jak i jego raportowany koszt.

Dlaczego testować łańcuch złożony tylko z jednej macierzy?

Określa on zachowanie bazowe, gdy mnożenie nie jest potrzebne. Uwzględnij go obok małego przykładu z kilkoma macierzami, aby sprawdzić propozycję asystenta zarówno na granicy zakresu, jak i pod kątem logiki planowania dłuższych łańcuchów.

Czy środowisko może zweryfikować rzeczywiste wyniki numeryczne macierzy?

Do takich wyników używaj narzędzi numerycznych i testów projektu. Środowisko programistyczne wspiera omawianie i przegląd proponowanych zmian; poprawny przypadek testowy kosztu nie dowodzi, że osobna implementacja mnożenia zwraca poprawne wartości.

Jak zapobiec rozszerzeniu interfejsu podczas refaktoryzacji kosztu?

W zleceniu podaj obecny typ zwracany i wymagane zachowanie kodu wywołującego. Sprawdź różnice pod kątem nowych wyników lub zmienionych jednostek. Jeśli potrzebny jest bogatszy plan, określ go jako świadomy kolejny krok, a nie przypadkowy efekt refaktoryzacji.

Pobierz dla Windows ↗

ChainArbor · Zaktualizowano 2026-10-25