function res=LERW(N) walk=marche2(N); // on charge une realisation de la marche simple temp=testegalite([0 0],walk); // on initialise comme dans l'algorithme indice=[temp]; // le vecteur indice contiendra les indice de la marche a boucles effacees while ((walk(temp,1)<>walk(N,1))|(walk(temp,2)<>walk(N,2)))// on met en place la boucle valeur=[walk(temp,1) walk(temp,2)] temp=testegalite(valeur,walk) indice=[indice ; temp+1] temp=temp+1 end lerw1=walk(indice,1)'; lerw2=walk(indice,2)'; // les coordonnees de la marche a boucles effacees sont (lerW1,lerw2) res=[length(lerw1)]; // res est la longueur de la nouvelle marche xmin=min(lerw1); xmax=max(lerw1); ymin=min(lerw2) ; ymax=max(lerw2); isoview(xmin,xmax,ymin,ymax); plot2d(walk(:,1),walk(:,2)) // on trace la marche initiale xset('thickness',2) plot2d(lerw1,lerw2,style=5)// et en gras sa version a boucles effacees x=0:0.1:8; //plot2d(res^(4/5)*cos(x),res^(4/5)*sin(x)) plot(sqrt(res)*cos(x),sqrt(res)*sin(x)) endfunction