Całkowita transformata Walsha–Hadamarda
Zastosuj nieznormalizowaną transformatę Walsha–Hadamarda do niepustego ciągu ograniczonych liczb całkowitych o długości będącej potęgą dwóch, najwyżej 256.
def walsh_transform(values):
out = list(values)
n = len(out)
if not 1 <= n <= 256 or n & (n - 1):
raise ValueError("length.power_two")
if any(type(v) is not int or abs(v) > 1000000 for v in out):
raise ValueError("value.range")
step = 1
while step < n:
for start in range(0, n, 2 * step):
for j in range(start, start + step):
a, b = out[j], out[j + step]
out[j], out[j + step] = a + b, a - b
step *= 2
return out| Projekt | Odrzuć nieprawidłowe długości i wartości logiczne, sprawdzając, że dwukrotne zastosowanie mnoży oryginał przez długość. |
|---|---|
| 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. |
def walsh_transform(values):
out = list(values)
n = len(out)
if not 1 <= n <= 256 or n & (n - 1):
raise ValueError("length.power_two")
if any(type(v) is not int or abs(v) > 1000000 for v in out):
raise ValueError("value.range")
step = 1
while step < n:
for start in range(0, n, 2 * step):
for j in range(start, start + step):
a, b = out[j], out[j + step]
out[j], out[j + step] = a + b, a - b
step *= 2
return outZachowaj jawne konwencje transformacji podczas refaktoryzacji
WalshAster to środowisko programistyczne dla Windows do pracy nad zmianami źródeł z podłączonym modelem AI. Refaktoryzacje obliczeń łatwiej ocenić, gdy najpierw określi się pierwotną konwencję. Opisz akceptowane dane, oczekiwany kształt wyniku i regułę skalowania przed zleceniem asystentowi reorganizacji pętli lub wprowadzenia innej implementacji.
Przykład całkowitoliczbowej transformacji Walsha–Hadamarda dostarcza konkretnego zadania do rozmowy. Poproś model o sprawdzenie aktualizowanych par i granic długości wejścia w kontekście własnego modułu. Zachowaj jawną konwencję przykładu, aby znajoma nazwa nie skłoniła asystenta do przyjęcia wariantu znormalizowanego lub innej kolejności wyników.
Podczas przeglądu porównaj proponowany kod z małymi znanymi wynikami i własnościami, które projekt ma zachować. W tym przykładzie dwukrotne zastosowanie transformacji jest użytecznym sprawdzeniem skalowania, obok przypadków odrzucanych danych. Uruchom kontrole samodzielnie i zbadaj wywołania interpretujące wynik; wewnętrzna refaktoryzacja nie powinna po cichu zmieniać ujawnianej tam konwencji danych.
Wybierz model AI bez ograniczeń tylko przez obsługiwany punkt końcowy zgodny z OpenAI lub punkt Anthropic, który go udostępnia. Skonfiguruj wymagane uwierzytelnianie i sprawdź pojemność kontekstu oraz narzędzia. Ograniczenia podłączonego modelu nadal zależą od dostawcy, a proponowane uproszczenie wymaga dowodów z rzeczywistej implementacji i testów.
Pytania przy utrzymaniu kodu transformacji
- Jaką konwencję udokumentować przed zleceniem refaktoryzacji?
Określ kolejność wyników, skalowanie i akceptowane długości wejścia oraz typy elementów obsługiwane przez moduł. Podaj małe znane wejście i wynik. Zapobiega to zastąpieniu konwencji transformacji inną pod tą samą nazwą.
- Czy samo sprawdzenie podwójnej transformacji wystarcza?
Jest użyteczne dla pokazanej konwencji, ale powinno towarzyszyć znanym wynikom i testom granic wejścia. Sprawdź też interpretację kodu wywołującego. Zachowanie własności algebraicznej nie musi dowodzić, że kolejność i zachowanie interfejsu nadal odpowiadają oczekiwaniom aplikacji.
- Jak ocenić zmianę modyfikującą dane wejściowe?
Najpierw ustal, czy obecny kontrakt dopuszcza modyfikację. Uwzględnij wywołania ponownie używające oryginalnych wartości i jawnie przetestuj to użycie. Propozycja oszczędzająca pamięć zmienia obserwowalne zachowanie, jeśli te wywołania polegają na niezmienionym ciągu wejściowym.
- Czy użycie innego modelu zmienia potrzebną weryfikację?
Nie. Zachowaj te same akceptowane wejścia, znane wyniki i kontrole skalowania przy ocenie propozycji innego modelu. Wybór modelu może zmienić wyjaśnienie lub proponowany kod, lecz nie potwierdza poprawności ani nie zastępuje weryfikacji projektu.
WalshAster · Zaktualizowano 2026-10-25