Transformata întreagă Walsh–Hadamard
Aplică transformata Walsh–Hadamard nenormalizată unei secvențe nevide de întregi limitați, cu lungime putere a lui doi până la 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| Proiect | Respinge lungimile incorecte și valorile booleene, verificând că două aplicări înmulțesc originalul cu lungimea sa. |
|---|---|
| Verifică înainte de aplicare | Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări. |
| Modele | Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat. |
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 outPăstrează vizibile convențiile transformării în timpul refactorizării
WalshAster este un spațiu de programare pentru Windows în care poți analiza modificările sursei cu un model IA conectat. Refactorizările calculelor sunt mai ușor de evaluat când convenția originală este precizată de la început. Descrie intrarea acceptată, forma așteptată a rezultatului și regula de scalare înainte de a cere asistentului să reorganizeze buclele sau să introducă altă implementare.
Exemplul transformării Walsh–Hadamard pe numere întregi oferă o sarcină concretă pentru conversație. Cere modelului să inspecteze perechile de actualizare și limita lungimii intrării în contextul propriului modul. Păstrează explicită convenția exemplului, astfel încât un nume familiar să nu determine asistentul să presupună o variantă normalizată sau altă ordine a rezultatelor.
În timpul revizuirii, compară codul propus cu rezultate mici cunoscute și cu proprietățile pe care proiectul trebuie să le păstreze. Pentru acest exemplu, aplicarea transformării de două ori oferă o verificare utilă a scalării, alături de cazuri cu intrări respinse. Rulează tu verificările și examinează orice apelant care interpretează rezultatul; o refactorizare internă nu trebuie să schimbe tacit convenția datelor expusă acolo.
Alege un model IA fără restricții doar printr-un endpoint acceptat compatibil cu OpenAI sau Anthropic care îl pune la dispoziție. Configurează datele de autentificare necesare și verifică capacitatea contextului și instrumentele. Restricțiile modelului conectat depind în continuare de furnizor, iar simplificarea propusă necesită în continuare dovezi din implementarea și testele reale.
Întrebări de revizuire pentru mentenanța transformărilor
- Ce convenție trebuie documentată înainte de a solicita refactorizarea?
Precizează ordinea rezultatelor, scalarea și lungimile de intrare acceptate, împreună cu tipurile de elemente tratate de modul. Include o intrare și un rezultat mici cunoscute. Astfel împiedici propunerea să înlocuiască o convenție de transformare cu alta sub același nume.
- Este suficientă doar verificarea transformării duble?
Este utilă pentru convenția ilustrată, dar trebuie însoțită de rezultate cunoscute și teste la limitele intrării. Verifică și interpretarea apelantului. Păstrarea unei proprietăți algebrice nu dovedește neapărat că ordinea și comportamentul interfeței rămân cele așteptate de aplicație.
- Cum revizuiesc o modificare care alterează intrarea?
Stabilește întâi dacă modificarea intrării este permisă de contractul existent. Include apelanții care refolosesc valorile originale și testează explicit această refolosire. O propunere care economisește memorie schimbă comportamentul observabil dacă apelanții depind de o secvență de intrare neschimbată.
- Folosirea altui model schimbă verificările necesare?
Nu. Păstrează aceleași intrări acceptate, rezultate cunoscute și verificări de scalare când evaluezi propunerea altui model. Alegerea modelului poate schimba explicația sau codul sugerat, dar nu stabilește corectitudinea și nu înlocuiește verificarea proiectului.
WalshAster · Actualizat 2026-10-25