Salta al contenuto
Note per Studenti Esercizio - matrici RCA, somma e prodotto matrice-vettore (compito del 18 giugno 2026, es. 1)

Esercizio - matrici RCA, somma e prodotto matrice-vettore (compito del 18 giugno 2026, es. 1)

Esame
In questa pagina 5

Compito d'esame di Algoritmi per l'Ingegneria, Ing. Informatica UniPD, 18 giugno 2026, seconda parte, esercizio 1 (17 punti). Teoria usata: Matrici circolanti e supercircolanti - algoritmi divide and conquerle matrici supercircolanti (quadranti alternati ricorsivi) hanno solo n valori distinti: somma in n operazioni, prodotto in 4n log2 n + n con il trucco (A1+A2)(B1+B2) e (A1-A2)(B1-B2) invece delle 4 chiamate (Theta(n^2)); gli autovalori sono la trasformata di Hadamard della prima riga (FHT, n log2 n) e il prodotto passa dalla base diagonalizzante; le matrici circolanti sono polinomi nella matrice di rotazione R, il loro prodotto è la convoluzione ciclica delle prime righe e si diagonalizzano con la matrice di Fourier: prodotto in O(n log n) con la FFT.Matrici circolanti e supercircolanti - algoritmi divide and conquer → (stessa tecnica delle supercircolanti), Prodotto di matrici - algoritmo iterativo e ricorsivo a blocchimodello di costo sulle matrici n x n (operazioni tra scalari, taglia n oppure N = n^2); somma in n^2 operazioni (ottima); prodotto righe per colonne iterativo con costo esatto 2n^3 - n^2; proprietà frattale del prodotto a blocchi dimostrata sugli indici; algoritmo ricorsivo RMUL con T(n) = 8T(n/2) + n^2, Theta(n^3) e soluzione esatta 2n^3 - n^2 per induzione e per srotolamento: fa le stesse operazioni dell'iterativo.Prodotto di matrici - algoritmo iterativo e ricorsivo a blocchi →, Dimostrazioni, induzione e invariantiTecniche di dimostrazione (esempio, controesempio, assurdo), induzione con casi base multipli, invarianti di ciclo (inizializzazione, conservazione, uso alla fine), schema generale per provare la correttezza; esempi svolti su arrayMax, sequenza di bit e numeri di Fibonacci.Dimostrazioni, induzione e invarianti → e Albero della ricorrenza e formula generale per le ricorrenzeL'albero della ricorrenza ha la forma dell'albero delle chiamate dell'istanza peggiore e T(n) è la somma dei lavori dei nodi. Per la famiglia T(n) = s(n)T(f(n)) + w(n) con base T0 per n <= n0, contando i nodi per livello con le iterate di f e il livello f(n,n0) si ottiene la formula chiusa T(n) = somma_l [prodotto_j s(f^(j)(n))] w(f^(l)(n)) + [prodotto s] T0, verificata per induzione e applicata a esempi (merge sort, Hanoi, ricorrenze con radice).Albero della ricorrenza e formula generale per le ricorrenze →.*

Testo

Sia n≥1n \ge 1 una potenza di due. Una matrice T∈Rn×nT \in \mathbb R^{n \times n} si dice Ricorsivamente Centralmente Antisimmetrica di ordine nn (nn-RCA, in breve) se n=1n = 1, oppure, per n>1n > 1,

T=(AB−B−A),T = \begin{pmatrix} A & B \\ -B & -A \end{pmatrix},

con A,BA, B matrici n2\frac n2-RCA.

  • 1.(a) [4 punti] Si dimostri che, se TT e VV sono nn-RCA, allora T+VT + V e T−VT - V sono nn-RCA.
  • 1.(b) [6 punti] Date due matrici nn-RCA TT e VV, si descrivano (senza necessariamente fornire lo pseudocodice) e si analizzino algoritmi ricorsivi RCA_SUM(T,V)(T, V) e RCA_SUB(T,V)(T, V) che restituiscano, rispettivamente, T+VT + V e T−VT - V. Si esprima la complessità di tali algoritmi in funzione del numero di operazioni aritmetiche tra scalari reali eseguite. (Attenzione: dato lo scalare xx, si assuma che il calcolo dello scalare −x-x abbia costo nullo.)
  • 1.(c) [7 punti] Si scriva e si analizzi lo pseudocodice di un algoritmo ricorsivo RCA_MV_MUL(T,x)(T, x) che, data una matrice nn-RCA TT e un vettore x∈Rnx \in \mathbb R^n, calcoli il prodotto matrice-vettore TxTx. (Suggerimento: un algoritmo efficiente deve utilizzare opportune, semplici combinazioni lineari dei quadranti di TT e dei due sottovettori u,v∈Rn/2u, v \in \mathbb R^{n/2} tali che x=(uv)x = \binom{u}{v}.)

Attenzione: per ottenere punteggio pieno, ciascuno dei tre algoritmi deve eseguire o(n2)o(n^2) operazioni tra scalari reali.

Come si legge la struttura

Una nn-RCA ha n2n^2 elementi ma solo nn valori indipendenti: i quadranti in basso sono determinati da quelli in alto (−B-B e −A-A), e ricorsivamente AA e BB hanno n2\frac n2 valori indipendenti ciascuna. Per n=2n = 2:

T=(ab−b−a),n=4:T=(abcd−b−a−d−c−c−d−a−bdcba)T = \begin{pmatrix} a & b \\ -b & -a \end{pmatrix}, \qquad n = 4: \quad T = \begin{pmatrix} a & b & c & d \\ -b & -a & -d & -c \\ -c & -d & -a & -b \\ d & c & b & a \end{pmatrix}

con A=(ab−b−a)A = \begin{pmatrix} a & b \\ -b & -a \end{pmatrix} e B=(cd−d−c)B = \begin{pmatrix} c & d \\ -d & -c \end{pmatrix}, −B-B in basso a sinistra e −A-A in basso a destra. La prima riga (a,b,c,d)(a, b, c, d) determina tutta la matrice. L'idea è la stessa delle supercircolanti: lavorare solo sui due quadranti in alto e ottenere gli altri con un cambio di segno, che qui costa 00.

Punto (a): chiusura per somma e differenza

Induzione su k≥0k \ge 0 con n=2kn = 2^k (l'induzione vera è su kk; vedi Dimostrazioni, induzione e invariantiTecniche di dimostrazione (esempio, controesempio, assurdo), induzione con casi base multipli, invarianti di ciclo (inizializzazione, conservazione, uso alla fine), schema generale per provare la correttezza; esempi svolti su arrayMax, sequenza di bit e numeri di Fibonacci.Dimostrazioni, induzione e invarianti →).

  • Base (n=1n = 1): ogni matrice 1×11 \times 1 è 11-RCA per definizione, e somma e differenza di due scalari sono scalari.
  • Ipotesi: somma e differenza di due matrici n2\frac n2-RCA sono n2\frac n2-RCA.
  • Passo: siano TT e VV nn-RCA, con n>1n > 1,

T=(AB−B−A),V=(CD−D−C),A,B,C,D    n2-RCA.T = \begin{pmatrix} A & B \\ -B & -A \end{pmatrix}, \qquad V = \begin{pmatrix} C & D \\ -D & -C \end{pmatrix}, \quad A, B, C, D \;\; \tfrac n2\text{-RCA}.

Si somma o sottrae quadrante per quadrante (la somma di matrici ha la proprietà frattale: si può fare per blocchi). Con il segno ±\pm preso uguale in tutti i quadranti:

T±V=(A±CB±D−B∓D−A∓C)=(A±CB±D−(B±D)−(A±C)).T \pm V = \begin{pmatrix} A \pm C & B \pm D \\ -B \mp D & -A \mp C \end{pmatrix} = \begin{pmatrix} A \pm C & B \pm D \\ -(B \pm D) & -(A \pm C) \end{pmatrix}.

Il secondo passaggio raccoglie il segno meno: −B∓D=−(B±D)-B \mp D = -(B \pm D) e −A∓C=−(A±C)-A \mp C = -(A \pm C). Il quadrante in alto a sinistra A±CA \pm C è l'opposto di quello in basso a destra, e quello in alto a destra B±DB \pm D è l'opposto di quello in basso a sinistra, come richiede la definizione. Inoltre A±CA \pm C e B±DB \pm D sono somme o differenze di matrici n2\frac n2-RCA, quindi per ipotesi sono n2\frac n2-RCA. Allora T±VT \pm V ha la forma (A′B′−B′−A′)\begin{pmatrix} A' & B' \\ -B' & -A' \end{pmatrix} con A′,B′A', B' n2\frac n2-RCA: è nn-RCA. ■\blacksquare

Osservazione. La stessa cosa non vale per il prodotto: per n=2n = 2, T=(12−2−1)T = \begin{pmatrix} 1 & 2 \\ -2 & -1 \end{pmatrix} e V=(34−4−3)V = \begin{pmatrix} 3 & 4 \\ -4 & -3 \end{pmatrix} danno TV=(−5−2−2−5)TV = \begin{pmatrix} -5 & -2 \\ -2 & -5 \end{pmatrix}, che non è RCA (la diagonale principale non è l'opposto dell'antidiagonale). Per questo l'esercizio chiede solo somma, differenza e prodotto matrice-vettore.

Punto (b): RCA_SUM e RCA_SUB

Dal punto (a): i due quadranti in alto di T±VT \pm V sono A±CA \pm C e B±DB \pm D, e gli altri due sono i loro opposti.

  • Base n=1n = 1: una sola operazione (una somma o una sottrazione tra scalari).

  • Caso n>1n > 1: due chiamate ricorsive su matrici n2\frac n2-RCA per i quadranti in alto,

    • RCA_SUM: A+CA + C e B+DB + D;
    • RCA_SUB: A−CA - C e B−DB - D.

    I quadranti in basso si ottengono scambiando i quadranti in alto e cambiando il segno di ogni elemento: costo nullo per l'ipotesi del testo. Il lavoro dei nodi interni è quindi 00.

Ricorrenza (la stessa per le due procedure):

T(n)={1n=1,2 T ⁣(n2)n>1.T(n) = \begin{cases} 1 & n = 1, \\ 2\,T\!\left(\frac n2\right) & n > 1. \end{cases}

Srotolando: T(n)=2T(n2)=4T(n4)=⋯=2kT(1)=nT(n) = 2T(\frac n2) = 4T(\frac n4) = \dots = 2^k T(1) = n (con n=2kn = 2^k). La formula generale (Albero della ricorrenza e formula generale per le ricorrenzeL'albero della ricorrenza ha la forma dell'albero delle chiamate dell'istanza peggiore e T(n) è la somma dei lavori dei nodi. Per la famiglia T(n) = s(n)T(f(n)) + w(n) con base T0 per n <= n0, contando i nodi per livello con le iterate di f e il livello f*(n,n0) si ottiene la formula chiusa T(n) = somma_l [prodotto_j s(f^(j)(n))] w(f^(l)(n)) + [prodotto s] T0, verificata per induzione e applicata a esempi (merge sort, Hanoi, ricorrenze con radice).Albero della ricorrenza e formula generale per le ricorrenze →) dà lo stesso risultato: s=2s = 2, w=0w = 0, restano solo le 2k=n2^k = n foglie da costo 11. Quindi

TRCA_SUM(n)=TRCA_SUB(n)=n=o(n2).T_{RCA\_SUM}(n) = T_{RCA\_SUB}(n) = n = o(n^2).

È il minimo possibile: le matrici hanno nn valori indipendenti e ognuno del risultato richiede la propria somma. (Se invece si usassero le matrici dense, sarebbero n2n^2 somme.)

Punto (c): RCA_MV_MUL

Caso base n=1n = 1: T=[t11]T = [t_{11}] e Tx=[t11x1]Tx = [t_{11} x_1], una moltiplicazione.

Passo. Per n>1n > 1 si scrivono

T=(AB−B−A),x=(uv),  u,v∈Rn/2,Tx=(Au+Bv−Bu−Av).T = \begin{pmatrix} A & B \\ -B & -A \end{pmatrix}, \qquad x = \begin{pmatrix} u \\ v \end{pmatrix}, \; u, v \in \mathbb R^{n/2}, \qquad Tx = \begin{pmatrix} Au + Bv \\ -Bu - Av \end{pmatrix}.

La definizione porterebbe a 44 prodotti matrice-vettore su taglia n2\frac n2 (Au,Bv,Bu,AvAu, Bv, Bu, Av) e quindi T(n)=4T(n2)+Θ(n)T(n) = 4T(\frac n2) + \Theta(n), cioè Θ(n2)\Theta(n^2): non basta. Il suggerimento propone le combinazioni lineari dei quadranti e dei sottovettori:

X=A+B,W=A−B,r=u+v,s=u−v,X = A + B, \quad W = A - B, \qquad r = u + v, \quad s = u - v,

dove XX e WW sono n2\frac n2-RCA per il punto (a). Due soli prodotti ricorsivi:

y=Xr=(A+B)(u+v)=Au+Av+Bu+Bv,y = Xr = (A + B)(u + v) = Au + Av + Bu + Bv, z=Ws=(A−B)(u−v)=Au−Av−Bu+Bv.z = Ws = (A - B)(u - v) = Au - Av - Bu + Bv.

Si sommano e si sottraggono (i termini misti Av+BuAv + Bu cambiano segno, gli altri no):

y+z=2(Au+Bv),z−y=−2(Av+Bu).y + z = 2(Au + Bv), \qquad z - y = -2(Av + Bu).

Quindi

Tx=(Au+Bv−Bu−Av)=(12(y+z)12(z−y)).Tx = \begin{pmatrix} Au + Bv \\ -Bu - Av \end{pmatrix} = \begin{pmatrix} \frac 12 (y + z) \\ \frac 12 (z - y) \end{pmatrix}.

Questa è la proprietà di sottostruttura: un prodotto matrice-vettore di taglia nn si riduce a due di taglia n2\frac n2 (entrambe su matrici RCA e vettori di Rn/2\mathbb R^{n/2}), più combinazioni lineari.

RCA_MV_MUL(T, x)
  n <- T.rows
  if n = 1 then return (t11 * x1)
  * T = [A B; -B -A],  x = [u; v] *
  X <- RCA_SUM(A, B)                     { n/2 operazioni }
  W <- RCA_SUB(A, B)                     { n/2 operazioni }
  for i <- 1 to n/2 do
    r[i] <- u[i] + v[i]                  { n/2 operazioni }
    s[i] <- u[i] - v[i]                  { n/2 operazioni }
  y <- RCA_MV_MUL(X, r)
  z <- RCA_MV_MUL(W, s)
  for i <- 1 to n/2 do
    m[i]       <- (y[i] + z[i]) / 2      { 2 operazioni }
    m[i + n/2] <- (z[i] - y[i]) / 2      { 2 operazioni }
  return m

Correttezza: per induzione su kk. Per n=1n = 1 è immediata. Per n>1n > 1, XX e WW sono n2\frac n2-RCA (punto (a)) e il costo 00 del cambio di segno permette di tenere implicite le metà in basso; r,s∈Rn/2r, s \in \mathbb R^{n/2}; per ipotesi induttiva le chiamate restituiscono y=Xry = Xr e z=Wsz = Ws; l'identità sopra mostra che m=Txm = Tx.

Analisi. Lavoro dei nodi interni, in numero di operazioni tra scalari reali:

passo operazioni
X=A+BX = A + B (RCA_SUM su ordine n2\frac n2) n2\frac n2
W=A−BW = A - B (RCA_SUB) n2\frac n2
r=u+vr = u + v n2\frac n2
s=u−vs = u - v n2\frac n2
mi=12(yi+zi)m_i = \frac 12 (y_i + z_i), n2\frac n2 componenti, somma e divisione 2⋅n2=n2 \cdot \frac n2 = n
mi+n/2=12(zi−yi)m_{i + n/2} = \frac 12 (z_i - y_i), n2\frac n2 componenti, differenza e divisione 2⋅n2=n2 \cdot \frac n2 = n
totale 4n4n

La ricorrenza è

T(n)={1n=1,2 T ⁣(n2)+4nn>1.T(n) = \begin{cases} 1 & n = 1, \\ 2\,T\!\left(\frac n2\right) + 4n & n > 1. \end{cases}

Soluzione esatta con la formula generale: s=2s = 2, f(n)=n2f(n) = \frac n2, w(n)=4nw(n) = 4n, n0=1n_0 = 1, T0=1T_0 = 1, k=log⁡2nk = \log_2 n livelli interni. Al livello ℓ\ell ci sono 2ℓ2^\ell nodi su taglia n2ℓ\frac{n}{2^\ell}, ciascuno con lavoro 4n2ℓ4 \frac{n}{2^\ell}: ogni livello costa 4n4n. Le foglie sono 2k=n2^k = n da costo 11:

T(n)=∑ℓ=0k−12ℓ⋅4 n2ℓ+2k⋅1=4nk+n=4nlog⁡2n+n=Θ(nlog⁡n)=o(n2).T(n) = \sum_{\ell=0}^{k-1} 2^\ell \cdot 4\,\frac{n}{2^\ell} + 2^k \cdot 1 = 4nk + n = 4n \log_2 n + n = \Theta(n \log n) = o(n^2).

Per il Master Theorem (Master Theorem - enunciato, casi e applicazioniMaster Theorem per T(n) = aT(n/b) + w(n): si confronta w(n) con la funzione soglia n^(log_b a). Caso 1 (w minore di una potenza polinomiale): Theta(n^(log_b a)); caso 2 (w della stessa taglia): Theta(n^(log_b a) log n); caso 3 (w maggiore e regolare): Theta(w(n)). Prova completa dai livelli dell'albero, versione estesa (parti intere, n0 qualsiasi), esempi, e l'uso scorretto quando nessun caso si applica (w = n log n).Master Theorem - enunciato, casi e applicazioni →): a=2a = 2, b=2b = 2, soglia nn, w=4n=Θ(n)w = 4n = \Theta(n): caso 2, Θ(nlog⁡n)\Theta(n \log n).

Esempio (n=2n = 2). T=(12−2−1)T = \begin{pmatrix} 1 & 2 \\ -2 & -1 \end{pmatrix} e x=(35)x = \binom{3}{5}: Tx=(3+10−6−5)=(13−11)Tx = \binom{3 + 10}{-6 - 5} = \binom{13}{-11}. Con l'algoritmo: A=[1]A = [1], B=[2]B = [2], u=[3]u = [3], v=[5]v = [5]; X=3X = 3, W=−1W = -1; r=8r = 8, s=−2s = -2; y=24y = 24, z=2z = 2; m=(24+22,2−242)=(13,−11)m = \bigl(\frac{24 + 2}{2}, \frac{2 - 24}{2}\bigr) = (13, -11). Le operazioni sono 4⋅2⋅1+2=104 \cdot 2 \cdot 1 + 2 = 10: X,WX, W (22), r,sr, s (22), y,zy, z (22 moltiplicazioni), mm (44).

Verifica con un programma. Un'implementazione di RCA_SUM e RCA_MV_MUL che conta le operazioni e confronta il risultato con TxTx calcolato dalla matrice piena, per n=1,2,…,256n = 1, 2, \dots, 256, dà conteggi uguali a nn e a 4nlog⁡2n+n4n \log_2 n + n. La soluzione del corso riporta T(n)=4nlog⁡2n+nT(n) = 4n \log_2 n + n, lo stesso valore.

Versione ripasso

Struttura: T=(AB−B−A)T = \begin{pmatrix} A & B \\ -B & -A \end{pmatrix} con A,BA, B n2\frac n2-RCA: solo nn valori indipendenti (prima riga), cambio di segno gratis. Tecnica come le supercircolanti (Matrici circolanti e supercircolanti - algoritmi divide and conquerle matrici supercircolanti (quadranti alternati ricorsivi) hanno solo n valori distinti: somma in n operazioni, prodotto in 4n log2 n + n con il trucco (A1+A2)(B1+B2) e (A1-A2)(B1-B2) invece delle 4 chiamate (Theta(n^2)); gli autovalori sono la trasformata di Hadamard della prima riga (FHT, n log2 n) e il prodotto passa dalla base diagonalizzante; le matrici circolanti sono polinomi nella matrice di rotazione R, il loro prodotto è la convoluzione ciclica delle prime righe e si diagonalizzano con la matrice di Fourier: prodotto in O(n log n) con la FFT.Matrici circolanti e supercircolanti - algoritmi divide and conquer →). Il prodotto di due RCA non è RCA (n=2n = 2: (12−2−1)(34−4−3)=(−5−2−2−5)\begin{pmatrix} 1 & 2 \\ -2 & -1 \end{pmatrix}\begin{pmatrix} 3 & 4 \\ -4 & -3 \end{pmatrix} = \begin{pmatrix} -5 & -2 \\ -2 & -5 \end{pmatrix}).

  • (a) Chiusura: induzione su kk; base banale; passo T±V=(A±CB±D−(B±D)−(A±C))T \pm V = \begin{pmatrix} A \pm C & B \pm D \\ -(B \pm D) & -(A \pm C) \end{pmatrix}, con A±CA \pm C, B±DB \pm D n2\frac n2-RCA per ipotesi.
  • (b) RCA_SUM/RCA_SUB: due chiamate sui quadranti in alto (A±CA \pm C, B±DB \pm D), quelli in basso sono gli opposti (gratis): T(1)=1T(1) = 1, T(n)=2T(n2)T(n) = 2T(\frac n2), quindi T(n)=n=o(n2)T(n) = n = o(n^2).
  • (c) RCA_MV_MUL: Tx=(Au+Bv−Bu−Av)Tx = \binom{Au + Bv}{-Bu - Av}. Con X=A+BX = A + B, W=A−BW = A - B (RCA per (a)), r=u+vr = u + v, s=u−vs = u - v si ha y=Xr=Au+Av+Bu+Bvy = Xr = Au + Av + Bu + Bv, z=Ws=Au−Av−Bu+Bvz = Ws = Au - Av - Bu + Bv, quindi y+z=2(Au+Bv)y + z = 2(Au + Bv), z−y=−2(Av+Bu)z - y = -2(Av + Bu) e Tx=(12(y+z)12(z−y)).Tx = \binom{\frac 12(y + z)}{\frac 12(z - y)}. Base: [t11x1][t_{11}x_1]. Due chiamate ricorsive invece di quattro.
  • Pseudocodice RCA_MV_MUL(T,x)(T, x): se n=1n = 1 ritorna t11x1t_{11}x_1; poi X←X \leftarrow RCA_SUM(A,B)(A,B), W←W \leftarrow RCA_SUB(A,B)(A,B); per i=1..n2i = 1..\frac n2: ri←ui+vir_i \leftarrow u_i + v_i, si←ui−vis_i \leftarrow u_i - v_i; y←y \leftarrow RCA_MV_MUL(X,r)(X, r), z←z \leftarrow RCA_MV_MUL(W,s)(W, s); per i=1..n2i = 1..\frac n2: mi←(yi+zi)/2m_i \leftarrow (y_i + z_i)/2, mi+n/2←(zi−yi)/2m_{i+n/2} \leftarrow (z_i - y_i)/2. Correttezza per induzione: X,WX, W RCA per (a), y=Xry = Xr, z=Wsz = Ws.
  • Conteggio per livello: ogni livello ha lavoro 4n4n (il livello ℓ\ell ha 2ℓ2^\ell nodi da 4n2ℓ4\frac{n}{2^\ell}), i livelli interni sono log⁡2n\log_2 n e le foglie nn (una moltiplicazione ciascuna): 4nlog⁡2n+n4n\log_2 n + n.
  • Costo di (c): X,W,r,sX, W, r, s valgono n2\frac n2 ciascuno (2n2n), le due metà del risultato 2⋅n22 \cdot \frac n2 operazioni ciascuna (somma e divisione): nn ciascuna, totale 4n4n. T(n)=2T(n2)+4nT(n) = 2T(\frac n2) + 4n, T(1)=1T(1) = 1, quindi T(n)=4nlog⁡2n+n=Θ(nlog⁡n)T(n) = 4n\log_2 n + n = \Theta(n\log n); Master Theorem caso 2 (Master Theorem - enunciato, casi e applicazioniMaster Theorem per T(n) = aT(n/b) + w(n): si confronta w(n) con la funzione soglia n^(log_b a). Caso 1 (w minore di una potenza polinomiale): Theta(n^(log_b a)); caso 2 (w della stessa taglia): Theta(n^(log_b a) log n); caso 3 (w maggiore e regolare): Theta(w(n)). Prova completa dai livelli dell'albero, versione estesa (parti intere, n0 qualsiasi), esempi, e l'uso scorretto quando nessun caso si applica (w = n log n).Master Theorem - enunciato, casi e applicazioni →).
  • Esempio n=2n = 2: T=(12−2−1)T = \begin{pmatrix} 1 & 2 \\ -2 & -1 \end{pmatrix}, x=(3,5)x = (3, 5): X=3X = 3, W=−1W = -1, r=8r = 8, s=−2s = -2, y=24y = 24, z=2z = 2, m=(13,−11)m = (13, -11), 1010 operazioni.
  • Errori tipici: fare quattro chiamate (Θ(n2)\Theta(n^2), non o(n2)o(n^2)); dimenticare che XX e WW devono essere RCA (serve il punto (a)) per poter ricorrere; contare il cambio di segno come operazione; dimenticare le due divisioni per 22 nel conteggio (4n4n e non 3n3n).

Teoria collegata