[TP1 + cours] Listes / Tableaux

This commit is contained in:
Suwako Moriya 2020-01-28 10:10:46 +01:00
parent 3e47e865b4
commit d74937dce1
Signed by: SuwakoMmh
GPG Key ID: A27482B806F13CD5
2 changed files with 32 additions and 20 deletions

View File

@ -36,7 +36,7 @@ let rec concatener listes = match longueur listes with
| 1 -> List.hd listes
| 2 -> (List.hd listes)@(List.hd (List.tl listes))
| _ -> concatener ([(List.hd listes)@(List.hd (List.tl listes))]@(List.tl (List.tl listes)));;
concatener [[1;2;3];[2;1;3];[4;5;1;3];[1]];;
concatener [[1;2;3];[2;1;3];[];[4;5;1;3];[1]];;
concatener [];;
List.concat [];;
@ -44,18 +44,22 @@ List.concat [];;
let rec recherche_dichomotique a v =
if Array.length v = 0 then false
else if a = v.((Array.length v)/2) then true
else if a < v.((Array.length v)/2)
then recherche_dichomotique a (Array.sub v 0 ((Array.length v)/2))
else recherche_dichomotique a (Array.sub v ((Array.length v)/2+1) ((Array.length v)/2));;
let rec recherche_dicho d f a v =
let c = (f - d)/2 in
if c = 0 then false
else if a = v.(c) then true
else if a < v.(c)
then recherche_dicho d c a v
else recherche_dicho c f a v;;
let recherche_dichotomique a v =
recherche_dicho 0 (Array.length v) a v;;
recherche_dichotomique (-5) [|1;2;3;4;5;6;7;8;9;10;11|];;
(*Exercice 5*)
let est_phermier n = (*on prend un n >=2*)
let est_premier n = (*on prend un n >=2*)
let t = ref true in
if n = 2 then ()
else for i = 2 to n/2 do
@ -63,22 +67,14 @@ let est_phermier n = (*on prend un n >=2*)
done ;
!t;;
est_phermier 17;;
est_phermier 14;;
est_premier 17;;
est_premier 14;;
let est_vrm_phermier n = (* on prend aussi un n >=2*)
(*let est_vrm_premier n = (* on prend aussi un n >=2*)
let t = ref true and i = ref 2 in
while !i <=(n/2) && !t do
if (n mod !i) = 0 then t := false;
i := !i + 1
done;
!t;;
est_vrm_phermier 17;;
est_vrm_phermier 17;;
est_vrm_phermier 14;;
est_vrm_phermier 14;;
est_vrm_phermier 17;;
est_vrm_phermier 13;;
!t;;*)

16
spe/cours/cous 2.ml Normal file
View File

@ -0,0 +1,16 @@
let catalan n =
let t = Array.make (n+1) 0 in
t.(0) <- 1;
for i=1 to n do
for k=0 to i-1 do
t.(i) <- (t.(k)*t.(i-1-k)) + t.(i)
done
done;
t.(n);;
catalan 5;;
let rec est_triee l = match l with
| [] -> true
| [a] -> true
| a::(b::t) -> a<=b && est_triee b::t;;