[Algoritmi] Equazione Ricorrenza

RemovedQuasar
Spero di aver azzeccato la sezione giusta :-D

Qual'è l'equazione di Ricorrenza del seguente algoritmo?

Algoritmo (n: integer) : integer
{ int r=0;
if (n>= 5)
{for (int k=1; k<=n-1; k++)
for( int j= [n/k] - 2 ; j>= [n/k+1]; j-- )
r=r+2;
Algoritmo ([n/2]) + 5
}
else r=5
}

ps: le parentesi quadre indicano floor.

[xdom="Martino"]Sposto in informatica[/xdom]

Risposte
hamming_burst
Benvenuto

"RemovedQuasar":
Spero di aver azzeccato la sezione giusta :-D

mi sa di no. Algoritmi -> Informatica

Qual'è l'equazione di Ricorrenza del seguente algoritmo?

Algoritmo (n: integer) : integer
{ int r=0;
  if (n>= 5){
         for (int k=1; k<=n-1; k++)
             for( int j= [n/k] - 2 ;  j>= [n/k+1];  j-- )
                 r=r+2;
                          Algoritmo ([n/2]) + 5
     }
    else r=5
}


ps: le parentesi quadre indicano floor.


questo pseudo-codice mi sa che è sbagliato, se dichiari esserci un valore integer come ritorno, non vedo il suo equivalente nel corpo... meglio che lo rivedi presumo sia tipo
Algoritmo (n: integer) : integer
{ int r=0;
  if (n>= 5){
         for (int k=1; k<=n-1; k++)
             for( int j= [n/k] - 2 ;  j>= [n/k+1];  j-- )
                 r=r+2;
                          Algoritmo ([n/2]) + 5
     }
    else r=5

return r
}

due consigli utilizza i tag [code] così non perdi l'indentazione, e metti le parentesi per racchiudere bene i cicli indentati.

Per calcolare tale ricorrenza, inizia con il valutare i costi dell'algoritmo.

RemovedQuasar
Mi scuso sia per la sezione sbagliata sia per non aver utilizzato i tag. Cmq farò come dici.
ps: però il codice originale era come l'ho copiato.

hamming_burst
"RemovedQuasar":
ps: però il codice originale era come l'ho copiato.


allora secondo me potrebbe essere così:

int Algoritmo (int n){
int r=0
	if(n>=5){
		for (int k=1;k<=n-1;k++){
			for( int j= floor(n/k)-2;j>= floor(n/k+1);j--){
				r=r+2;
			}
			r = Algoritmo(floor(n/2)) + 5
		}
	} else r=5

return r
}


prima cosa da fare calcolare i costi dell'algoritmo, che sono la funzione libera dell'equazione di ricorrenza.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.