Pracovní postupy · Konvergenty řetězových zlomků ×
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
✳Vraťte všechny konvergenty řetězového zlomku s jedním až 32 celočíselnými koeficienty v absolutní hodnotě do 1000.
✓ ZměnyPřed použitím zkontrolujte ↗
Ilustrace pracovního prostředí
Projekt
Ověřte záporný první člen a 3-7-16, odmítejte nekladné další členy a zachovejte přesné dvojice čitatele a jmenovatele.
Před použitím zkontrolujte
Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.
Modely
Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.
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
Pracovní prostředí s AI pro kód
Kontrolujte numerický kód se zřetelem k účelu aplikace
ConvergeHazel je pracovní prostředí pro programování s AI ve Windows pro diskusi o změnách numerického kódu spolu s projektem, který je potřebuje. Otevřete složku a vysvětlete, jak aplikace výpočet používá. Před doporučením úpravy požádejte připojený model o kontrolu funkce, jejích volajících a relevantních testů. Tento kontext pomáhá udržet matematicky věrohodné přepsání v souladu se skutečným kontraktem softwaru.
Příklad convergents.py může být základem úlohy o posloupnosti racionálních aproximací. Dodejte krátký vstup a přesné očekávané dvojice čitatel–jmenovatel a zeptejte se, jak se mezivýsledky dostávají do navazujícího kódu. Meze přijímaných členů a pořadí výstupu berte jako výslovné požadavky. Příklad poskytuje konkrétní cíl kontroly, zatímco implementace a ověřování zůstávají úlohami prováděnými nad soubory vašeho projektu.
Nefiltrovaný model AI lze zvolit přes podporovaný koncový bod kompatibilní s OpenAI nebo Anthropic, který jej nabízí. Podle potřeby nastavte připojení a přihlašovací údaje; kapacita kontextu a dostupnost nástrojů se liší podle služby. Prověřte navržené změny a porovnejte výsledky s nezávisle stanovenými případy. Pokud další kód převádí výstup na desetinné číslo, zachovejte zřetelné požadavky na přesnou aritmetiku. Úprava se snáze posuzuje, když má každá transformace uvedený účel a kontrolu na hranici, kde se může změnit význam.
Jak zajistit ověřitelnost numerické úpravy
Proč dodat přesné dvojice místo desetinných příkladů?
Desetinná čísla mohou skrýt rozdíl v reprezentaci nebo zaokrouhlení. Pokud kontrakt funkce vrací dvojice čitatel–jmenovatel, nejprve kontrolujte přímo je. Pozdější převod na desetinné číslo posuzujte jako samostatný krok s vlastními požadavky na přesnost.
Může model rozhodnout, které meze vstupu odstranit?
Může navrhnout důvody, ale přijímané vstupy mají určovat požadavky projektu. Před rozšířením rozsahu prověřte validaci a volající. Větší hodnoty nebo delší posloupnosti mohou vyžadovat další kontroly zdrojů a výstupu, které původní úloha nezahrnovala.
Stačí ověřit poslední aproximaci?
Ne, pokud volající používají mezilehlou posloupnost. Vedle poslední dvojice zahrňte očekávané pořadí a reprezentativní dřívější výsledky. Funkce může dospět k věrohodné konečné hodnotě a přitom vracet chybné nebo přeuspořádané mezilehlé položky.
Co když se numerické vysvětlení a testy neshodují?
Pozastavte rozhodnutí o přijetí úpravy a projděte malý případ ve zdrojovém kódu. Nezávisle ověřte očekávanou hodnotu a prověřte předpoklady testu. Plynulé zdůvodnění ani existující kontrolní podmínka nemají bez prozkoumání převážit nad prokázaným nesouladem.