CConvergeHazel
Środowisko programowania z AI

Redukty ułamków łańcuchowych

Zwróć wszystkie redukty ułamka łańcuchowego o jednym do 32 całkowitych współczynnikach z modułem do 1000.

● ● ●ConvergeHazel●
Sposoby pracy · Redukty ułamków łańcuchowych ×
def convergents(terms):
    terms = tuple(terms)
    if not 1 <= len(terms) <= 32 or any(type(a) is not int or abs(a) > 1000 for a in terms):
        raise ValueError("fraction.terms")
    if any(a <= 0 for a in terms[1:]):
        raise ValueError("fraction.tail")
    p0, p1, q0, q1, out = 0, 1, 1, 0, []
    for a in terms:
        p, q = a*p1+p0, a*q1+q0
        out.append((p, q))
        p0, p1, q0, q1 = p1, p, q1, q
    return out
✳Zwróć wszystkie redukty ułamka łańcuchowego o jednym do 32 całkowitych współczynnikach z modułem do 1000.
✓ ZmianySprawdź przed zastosowaniem ↗
Ilustracja środowiska
  1. Projekt

    Sprawdź ujemny pierwszy wyraz i 3-7-16, odrzuć niedodatnie dalsze wyrazy i zachowaj dokładne pary licznika i mianownika.

  2. Sprawdź przed zastosowaniem

    Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.

  3. 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

Redukty ułamków łańcuchowych

Sposoby pracy ↗
Sposoby pracy
def convergents(terms):
    terms = tuple(terms)
    if not 1 <= len(terms) <= 32 or any(type(a) is not int or abs(a) > 1000 for a in terms):
        raise ValueError("fraction.terms")
    if any(a <= 0 for a in terms[1:]):
        raise ValueError("fraction.tail")
    p0, p1, q0, q1, out = 0, 1, 1, 0, []
    for a in terms:
        p, q = a*p1+p0, a*q1+q0
        out.append((p, q))
        p0, p1, q0, q1 = p1, p, q1, q
    return out
Środowisko programowania z AI

Przeglądaj obliczenia numeryczne, nie tracąc celu aplikacji

ConvergeHazel to środowisko programowania z AI dla Windows do omawiania zmian kodu numerycznego razem z projektem, który ich potrzebuje. Otwórz folder i wyjaśnij, jak aplikacja korzysta z obliczenia. Poproś podłączony model o sprawdzenie funkcji, jej wywołań i odpowiednich testów przed zaleceniem edycji. Ten kontekst pomaga utrzymać matematycznie wiarygodną przeróbkę w zgodzie z rzeczywistym kontraktem oprogramowania.

Przykład convergents.py może być podstawą zadania dotyczącego ciągu przybliżeń wymiernych. Podaj krótkie wejście i dokładne oczekiwane pary licznik–mianownik, a następnie zapytaj, jak wyniki pośrednie docierają do odbiorcy. Traktuj dopuszczalne granice wyrazów i kolejność wyników jako jawne wymagania. Przykład daje konkretny cel przeglądu, a implementacja i weryfikacja pozostają zadaniami wykonywanymi na plikach Twojego projektu.

Model AI bez filtrów można wybrać przez obsługiwany punkt końcowy zgodny z OpenAI lub Anthropic, który go oferuje. Skonfiguruj połączenie i dane uwierzytelniające według wymagań; pojemność kontekstu i dostępność narzędzi różnią się między usługami. Przejrzyj proponowane zmiany i porównaj wyniki z niezależnie ustalonymi przypadkami. Zachowaj widoczność wymagań dokładnej arytmetyki, jeśli późniejszy kod konwertuje wynik na postać dziesiętną. Łatwiej ocenić poprawkę, gdy każde przekształcenie ma określony cel i kontrolę na granicy, gdzie znaczenie może się zmienić.

Jak uczynić poprawkę numeryczną sprawdzalną

Dlaczego podawać dokładne pary zamiast przykładów dziesiętnych?

Liczby dziesiętne mogą ukrywać różnicę reprezentacji lub zaokrąglenia. Jeśli kontrakt funkcji zwraca pary licznik–mianownik, najpierw sprawdź je bezpośrednio. Następnie oceń późniejszą konwersję dziesiętną jako osobny etap z własnymi wymaganiami precyzji.

Czy model może zdecydować, które granice wejścia usunąć?

Może proponować uzasadnienia, ale przyjmowane dane powinny wynikać z wymagań projektu. Sprawdź walidację i wywołania przed rozszerzeniem zakresu. Większe wartości lub dłuższe ciągi mogą wymagać dodatkowych kontroli zasobów i wyników, których pierwotne zadanie nie obejmowało.

Czy weryfikować tylko ostatnie przybliżenie?

Nie, jeśli kod wywołujący korzysta z ciągu pośredniego. Uwzględnij oczekiwaną kolejność i reprezentatywne wcześniejsze wyniki oraz ostatnią parę. Funkcja może osiągnąć wiarygodną wartość końcową, zwracając błędne lub przestawione elementy pośrednie.

Co zrobić, gdy wyjaśnienie numeryczne i testy się nie zgadzają?

Wstrzymaj decyzję o poprawce i prześledź mały przypadek w kodzie. Niezależnie sprawdź wartość oczekiwaną i zbadaj założenia testu. Ani płynne rozumowanie, ani istniejąca asercja nie powinny przeważać nad wykazaną rozbieżnością bez zbadania jej.

Pobierz dla Windows ↗

ConvergeHazel · Zaktualizowano 2026-10-25