Traduire du Caml en C
Ghada
-
Jithel Messages postés 1049 Statut Membre -
Jithel Messages postés 1049 Statut Membre -
Bonjour, svp traduisez ce code de Caml --> C
let d = fun x y i j -> if x.(i-1)=y.(j-1) then 1 else 0;;
let subseq length = fun x y ->
let m = vect length x and n = vect length y in
let l = make matrix (m+1) (n+1) 0 in
for i = 1 to m do
for j = 1 to n do
l.(i).(j) <- max
(l.(i-1).(j-1) + (d x y i j))
(max l.(i).(j-1) l.(i-1).(j))
done
done;
l.(m).(n);;
let t1 = [|�a�;�b�;�c�|];;
let t2 = [|�c�;�b�;�c�|];;
subseq length t1 t2;;
let min fun = fun f i1 i2 ->
let i = ref i1 in let res = ref (f !i) in
for j = i1 to i1 do
if !res > (f j) then (res := f j; i := j; );
done;
!i;;
t optprod = fun d ->
let n = vect length d - 1 in
let rec p = fun i j ->
let f = fun k ->
(p i k ) + (p (k+1) j) + d.(i)*d.(k+1)*d.(j+1) in
if i = j then 0
else f (min fun f i (j-1))
in p 0 (n-1)
let optprod dyn = fun d ->
let n = vect length d - 1 in
let p = make matrix n n 0 in
for l = 1 to (n-1) do
for i = 0 to (n-l-1) do
let j = l + i in
let f = fun k -> p.(i).(k)+p.(k+1).(j)+d.(i)*d.(k+1)*d.(j+1) in
let k = min fun f i (j-1) in
p.(i).(j) <- f k
done
done;
p.(0).(n-1);;
let optprod tree d =
let n = vect length d - 1 in
let p = make matrix n n 0 in
let s = make matrix n n (-1) in
for l = 1 to n - 1 do
for i = 0 to n - l - 1 do
let j = l + i in
let f k = p.(i).(k) + p.(k+1).(j) + d.(i) * d.(k+1) * d.(j+1) in
let k = min fun f i (j-1) in
p.(i).(j) <- f k;
s.(i).(j) <- k
done
done;
let rec aux i j =
if i = j then (Matrix i)
else Product (aux i s.(i).(j), aux (s.(i).(j) + 1) j)
in
aux 0 (n-1)
;;
let d = fun x y i j -> if x.(i-1)=y.(j-1) then 1 else 0;;
let subseq length = fun x y ->
let m = vect length x and n = vect length y in
let l = make matrix (m+1) (n+1) 0 in
for i = 1 to m do
for j = 1 to n do
l.(i).(j) <- max
(l.(i-1).(j-1) + (d x y i j))
(max l.(i).(j-1) l.(i-1).(j))
done
done;
l.(m).(n);;
let t1 = [|�a�;�b�;�c�|];;
let t2 = [|�c�;�b�;�c�|];;
subseq length t1 t2;;
let min fun = fun f i1 i2 ->
let i = ref i1 in let res = ref (f !i) in
for j = i1 to i1 do
if !res > (f j) then (res := f j; i := j; );
done;
!i;;
t optprod = fun d ->
let n = vect length d - 1 in
let rec p = fun i j ->
let f = fun k ->
(p i k ) + (p (k+1) j) + d.(i)*d.(k+1)*d.(j+1) in
if i = j then 0
else f (min fun f i (j-1))
in p 0 (n-1)
let optprod dyn = fun d ->
let n = vect length d - 1 in
let p = make matrix n n 0 in
for l = 1 to (n-1) do
for i = 0 to (n-l-1) do
let j = l + i in
let f = fun k -> p.(i).(k)+p.(k+1).(j)+d.(i)*d.(k+1)*d.(j+1) in
let k = min fun f i (j-1) in
p.(i).(j) <- f k
done
done;
p.(0).(n-1);;
let optprod tree d =
let n = vect length d - 1 in
let p = make matrix n n 0 in
let s = make matrix n n (-1) in
for l = 1 to n - 1 do
for i = 0 to n - l - 1 do
let j = l + i in
let f k = p.(i).(k) + p.(k+1).(j) + d.(i) * d.(k+1) * d.(j+1) in
let k = min fun f i (j-1) in
p.(i).(j) <- f k;
s.(i).(j) <- k
done
done;
let rec aux i j =
if i = j then (Matrix i)
else Product (aux i s.(i).(j), aux (s.(i).(j) + 1) j)
in
aux 0 (n-1)
;;
2 réponses
-
-
Si tu veux que quelqu'un fasse ton travail à ta place, passe une petite annonce dans un site de recrutement.
Ça a un prix mais c'est possible.
Ici, on aide les gens motivés à s'en sortir par eux-mêmes, pour qu'ils progressent.
Le but d'un exercice c'est de s'exercer, donc ici personne ne le fera à ta place.
-
Je n'utilise pas le language Caml et j'ai pas un besoin de l'utiliser et Ce n'est pas un exercice appartient à mes études .
C'est juste que j'ai un projet (programme) que je préparait loin à mes études .
Si vous pouvez m'aider merci sinon merci aussi .
(J'ai pas le besoin de personne pour faire mes exercices à ma place -
-
-
-
-