PDA

View Full Version : [C++] Problema di implementare una formula


superjack81
11-06-2009, 18:16
Salve ragazzi io dovrei esprimere una formula che mi esegua un calcolo...ma non riesco proprio a pensarla...
Il problema è questo:
possiedo un insime di k elementi facciamo esempio di 4... S={0,2,1,3} e possiedo una matrice con 4x4 con dei valori...io devo esprimere questa formula

W(i=0)= sommatoria(di tutte le j escuso i=0) di (Aij-Ahj)*W(j)

dove h è un elemento arbitrario dell'insieme S escluso i e i termini Aij Ahj sono glli elementi presi dalla matrice....
quindi W(0)= (A02-A22)*W(2)+(A01-A21)*W(1)+(A03-A23)*W(3)
per il calcolo di W(2) si decrementa l'insieme S={2,1,3} e si calcola
W(2)=(A21-A11)*W(1)+(A23-A13)*W(3)
si continua così fino ad arrivare all'insime S={3} composto da un solo elemento dove per definizione W(3)=1...quando c'è un solo elemento W(x)=1;

io ho fatto così:

calcolaPesi(int *rilevantiTot,int S,int inizio){

int i = rilevantiTot[inizio];
int W =0;

if(S == 0)
return 0;

if(S == 1){
W = 1;
arrayPesi[i]= W;
return W;
}

int h = rilevantiTot[inizio+1];
if(S == 2){
int j = h;
W += abs(matrix[i][j]-matrix[h][j])* calcolaPesi(rilevantiTot,S-1,inizio+1);
arrayPesi[i]= W;
return W;
}

for(int s=inizio;s<S-1;s++){
int j = rilevantiTot[s+1];
// h = j;
W += abs(matrix[i][j]-matrix[h][j])* calcolaPesi(rilevantiTot,S-1,inizio+1);
}

arrayPesi[i]=W;
return W;

}

Facendo i calcoli non ottengo ciò che speravo....ma non riesco a trovare una soluzione migliore...idee??grazie...