Nieważona regresja izotoniczna
Dopasuj ciąg niemalejący do najwyżej 128 skończonych obserwacji w zakresie ±10^6 metodą nieważonych najmniejszych kwadratów.
from math import isfinite
def isotonic_fit(values):
if type(values) is not list or len(values) > 128:
raise ValueError("bounded list")
if any(type(x) not in (int, float) or abs(x) > 10**6 or
not isfinite(x) for x in values):
raise ValueError("bounded finite values")
blocks = []
for value in values:
blocks.append([float(value), 1])
while len(blocks) > 1 and (
blocks[-2][0] / blocks[-2][1] > blocks[-1][0] / blocks[-1][1]):
total, count = blocks.pop()
blocks[-1][0] += total; blocks[-1][1] += count
return [total / count for total, count in blocks for _ in range(count)]Projekt
Sprawdź puste i malejące dane, odrzucając wartości logiczne i zachowując listę źródłową.
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.
from math import isfinite
def isotonic_fit(values):
if type(values) is not list or len(values) > 128:
raise ValueError("bounded list")
if any(type(x) not in (int, float) or abs(x) > 10**6 or
not isfinite(x) for x in values):
raise ValueError("bounded finite values")
blocks = []
for value in values:
blocks.append([float(value), 1])
while len(blocks) > 1 and (
blocks[-2][0] / blocks[-2][1] > blocks[-1][0] / blocks[-1][1]):
total, count = blocks.pop()
blocks[-1][0] += total; blocks[-1][1] += count
return [total / count for total, count in blocks for _ in range(count)]Żądaj dowodów odróżniających poprawkę od wiarygodnej przeróbki
OrderSaffron to oprogramowanie do programowania z AI dla Windows, które ułatwia ocenę proponowanych zmian przez miarodajne kontrole. Otwórz folder projektu i opisz zachowanie wymagające dowodów. Podłączony model może pomóc wspólnie sprawdzić implementację i testy, aby rozmowa dotyczyła tego, czy asercja oddaje wymaganie, a nie tylko czy obecny kod ją spełnia.
Przykład isotonic_fit.py dostarcza zadania tworzenia niemalejącego ciągu dopasowanego. Podaj małe wejście ze znanym oczekiwanym wynikiem i zapytaj, które przypadki odróżniają zamierzone zachowanie od pozornie uporządkowanego wyjścia. Uwzględnij równe wartości i już uporządkowane wejście. Przykład jest ćwiczeniem przeglądu projektu; nie oznacza, że środowisko zawiera produkt do dopasowania numerycznego lub automatyczną usługę certyfikacji testów.
Model AI bez filtrów można wybrać, jeśli udostępnia go obsługiwany punkt końcowy zgodny z OpenAI lub Anthropic. Skonfiguruj wymagane szczegóły połączenia i oceń limity narzędzi i kontekstu modelu. Przed uruchomieniem kontroli projektu przejrzyj poprawkę źródeł i proponowane testy. Zachowaj niezależne oczekiwania i zgłoś wszelkie luki. Pozytywny wynik jest użytecznym dowodem tylko wtedy, gdy testy sprawdzają kontrakt, który zamierzano zachować lub zmienić.
Ocena proponowanego zestawu testów numerycznych
- Dlaczego sprawdzanie niemalejącej kolejności nie wystarcza?
Wiele wyników może być uporządkowanych, nie będąc wymaganym dopasowaniem. Dodaj małe, niezależnie obliczone oczekiwania i inne właściwości kontraktu, takie jak długość wyjścia. Zapytaj, jakie błędy implementacji wykryłaby każda kontrola, zanim uznasz zestaw testów za dowód.
- Czy testy powinny zawierać już uporządkowane wejście?
Tak, gdy zamierzonym zachowaniem jest jego zachowanie. Taki przypadek może ujawnić zbędną zmianę lub błędy indeksowania. Jawnie określ oczekiwane wartości i dodaj powtórzone elementy, aby sprawdzać równość obok ściśle rosnącego wejścia.
- Czy asystent może napisać kod i testy?
Może zaproponować oba w ramach dostępnych narzędzi, ale ich uzasadnienia oceniaj niezależnie. Testy oparte na tym samym błędnym założeniu mogą zgadzać się z wadliwą implementacją. Oprzyj oczekiwane wyniki na zewnętrznych wymaganiach lub ręcznie sprawdzonych przykładach.
- Jak zgłaszać niepełną weryfikację?
Oddziel faktycznie uruchomione kontrole od proponowanych kontroli i nierozstrzygniętych założeń. Uwzględnij błędy i ograniczenia środowiska zamiast traktować brak wyjścia jako sukces. Daje to kolejnemu recenzentowi jasny obraz tego, co poprawka wykazuje, a co pozostaje niepewne.
OrderSaffron · Zaktualizowano 2026-10-25