Problema 5 (parte 2) Ex Dic 2020

Problema 5 (parte 2) Ex Dic 2020

de Margaret Wyaux Yewdiukow -
Número de respuestas: 2

Buenas, 

Quisiera saber si la solución alternativa a este ejercicio que pensé es correcta.
Gracias

function saltos=SaltarHastaRepetir(x,posiciones)

  saltos=1; %lo cargo en 1 y no en cero porque en el caso de q no entre al while devuelve 1, y en el                            ejemplo 2 que propone la letra cuando sale del while en ese caso devolvería 3 y no 4
  n=length(v);
  aux=zeros(1,n);
  i=x;
  aux(i)=aux(i)+1;
      while aux(posiciones(i))!=1
        aux(posiciones(i))=aux(posiciones(i))+1;
        saltos=saltos+1;
        j=posiciones(i);
        i=j;
     endwhile
endfunction



En respuesta a Margaret Wyaux Yewdiukow

Re: Problema 5 (parte 2) Ex Dic 2020

de Ernesto Dufrechou -
Hola,
En la solución siempre se mira la posición actual (i) y vos siempre mirás la posición a la que se salta posiciones(i). Las 2 formas están bien.
Sin embargo tenés algunos errores:
* donde dice n=length(v) debería ser n=length(posiciones)
* aux(i)=aux(i)+1 podría simplificarse por aux(i)=1
* por qué la asignación i=posiciones(i) se hace en 2 pasos (usando una variable j)?
Saludos!