SStackSundial
Środowisko programowania z AI

Ograniczona arytmetyka postfiksowa

Oblicz od jednego do 100 tokenów postfiksowych z ograniczonymi liczbami całkowitymi i operatorami +, -, * oraz //.

● ● ●StackSundial●
Sposoby pracy · Ograniczona arytmetyka postfiksowa ×
def postfix_value(tokens):
    tokens = tuple(tokens)
    if not 1 <= len(tokens) <= 100:
        raise ValueError("tokens.limit")
    stack = []
    for token in tokens:
        if type(token) is int and abs(token) <= 1000000000:
            stack.append(token)
            continue
        if type(token) is not str or token not in ("+", "-", "*", "//") or len(stack) < 2:
            raise ValueError("token.invalid")
        right, left = stack.pop(), stack.pop()
        if token == "//" and right == 0:
            raise ValueError("division.zero")
        value = (left + right if token == "+" else left - right if token == "-" else left * right if token == "*" else left // right)
        if abs(value) > 10**18:
            raise ValueError("result.range")
        stack.append(value)
    if len(stack) != 1:
        raise ValueError("stack.remainder")
    return stack[0]
✳Oblicz od jednego do 100 tokenów postfiksowych z ograniczonymi liczbami całkowitymi i operatorami +, -, * oraz //.
✓ ZmianySprawdź przed zastosowaniem ↗
Ilustracja środowiska
Projekt
Sprawdź ujemne dzielenie z zaokrągleniem w dół i odrzuć dzielenie przez zero, niepełny stos lub moduł wyniku pośredniego ponad 10**18.
Sprawdź przed zastosowaniem
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Modele
Dodaj 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

Ograniczona arytmetyka postfiksowa

Sposoby pracy ↗
Sposoby pracy
def postfix_value(tokens):
    tokens = tuple(tokens)
    if not 1 <= len(tokens) <= 100:
        raise ValueError("tokens.limit")
    stack = []
    for token in tokens:
        if type(token) is int and abs(token) <= 1000000000:
            stack.append(token)
            continue
        if type(token) is not str or token not in ("+", "-", "*", "//") or len(stack) < 2:
            raise ValueError("token.invalid")
        right, left = stack.pop(), stack.pop()
        if token == "//" and right == 0:
            raise ValueError("division.zero")
        value = (left + right if token == "+" else left - right if token == "-" else left * right if token == "*" else left // right)
        if abs(value) > 10**18:
            raise ValueError("result.range")
        stack.append(value)
    if len(stack) != 1:
        raise ValueError("stack.remainder")
    return stack[0]
Środowisko programowania z AI

Określ możliwości wyrażenia przed zmianą jego parsera

Obsługa wyrażeń wymaga jasnych granic, nawet gdy język jest mały. StackSundial to środowisko programowania z AI dla Windows do omawiania tych granic obok plików źródłowych. Otwórz projekt i poproś podłączony model o sprawdzenie akceptowanych tokenów, reguł obliczania i obsługi błędów w kodzie wywołującym przed zaproponowaniem zmiany implementacji.

Możliwym zadaniem jest przegląd ewaluatora postfiksowego używanego na wewnętrznym ekranie obliczeń. Określ dozwolone operatory, granice liczbowe i reakcję na nieprawidłowe wyrażenia. Poproś asystenta o wskazanie miejsc egzekwowania tych wymagań i zaproponowanie konkretnych zmian tam, gdzie ich brakuje. Dzięki temu rozmowa dotyczy utrzymania Twojego oprogramowania, a nie tylko generowania kolejnego ewaluatora.

Przejrzyj ścieżki odrzucenia równie uważnie jak udane obliczenia. Uruchom kontrole projektu dla brakujących operandów, nadmiarowych wyników, dzielenia przez zero i wartości poza dopuszczalnymi granicami. Sprawdź kolejność operandów w operacjach nieprzemiennych i potwierdź, że kod wywołujący otrzymuje zamierzony błąd. Nie akceptuj krótszej pętli obliczeniowej, jeśli osłabia otaczający ją kontrakt.

StackSundial obsługuje połączenia z punktami końcowymi zgodnymi z OpenAI lub punktami Anthropic. Tam, gdzie jest dostępny, wybierz model AI po ablacji ze świadomością, że ograniczenia, limity kontekstu i narzędzia zależą od wybranej usługi. Proponowany kod pozostaje punktem wyjścia do analizy i własnej weryfikacji, a nie dowodem gotowości interpretera.

Przed akceptacją poprawki ewaluatora

Jakie reguły uwzględnić w opisie zadania?

Określ dozwolone tokeny, typy operandów, granice liczbowe i zachowanie przy błędach. Dołącz kod wywołujący prezentujący błędy użytkownikom. Bez tych reguł propozycja może poprawnie obliczać zwykłe przykłady, a jednocześnie akceptować wyrażenia, które aplikacja miała odrzucać.

Dlaczego jawnie testować odejmowanie i dzielenie?

W przeciwieństwie do dodawania w zwykłych przypadkach ich wyniki zależą od kolejności operandów. Użyj przypadków z wyraźnie różnymi wynikami po odwróceniu operandów. Sprawdź konwencję dzielenia wymaganą przez projekt oraz reakcję na zerowy dzielnik.

Czy nieprawidłowe wyrażenia powinny zwracać zero?

Tylko jeśli jest to jawne wymaganie aplikacji. Wiarygodnie wyglądająca liczba zastępcza może ukryć błędne wejście. Poproś asystenta o zachowanie jasnej ścieżki odrzucenia i sprawdź, jak kod wywołujący odróżnia poprawny zerowy wynik od błędu.

Czy sam limit tokenów może ograniczyć obliczanie?

Przejrzyj wszystkie limity wymagane przez projekt, w tym wartości pośrednie i akceptowaną strukturę wejścia. Liczba tokenów dotyczy tylko części tego kontraktu. Po każdej zmianie pętli obliczeniowej przetestuj odpowiednie ścieżki odrzucenia.

Pobierz dla Windows ↗

StackSundial · Zaktualizowano 2026-10-25