Bonsoir à tous,
Je suis en train d'écrire un programme qui décompose une application de vecteurs en produit de cycles. Néanmoins, quelque chose m'échappe.
En effet, en écrivant
et en écrivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 let decomp (v:int vect) = let v',r = copy_vect v,ref 0 in for k=1 to (vect_length v - 1) do if v.(v'.(k-1)) <> v'.(!r) then v'.(k) <- v.(v'.(k-1)) else v'.(k) <- v.(k-1) done; v';;
Je n'obtiens pas le même résultat, et je ne comprend pas en quoi le changement de r fait varier l'instruction précédente...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 let decomp (v:int vect) = let v',r = copy_vect v,ref 0 in for k=1 to (vect_length v - 1) do if v.(v'.(k-1)) <> v'.(!r) then v'.(k) <- v.(v'.(k-1)) else v'.(k) <- v.(k-1); r:=k done; v';;
Si elle a un effet, comment puis je faire pour d'abord effectuer le changement dans le vecteur,
c'est à dire
puis après changer la valeur de r.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 v'.(k) <- v.(k-1)
Merci d'avance,
Remmal.
Partager