vault backup: 2023-09-29 14:33:01

This commit is contained in:
Louis Gallet 2023-09-29 14:33:01 +02:00
parent 42653756f2
commit 51cdedeae1
Signed by: lgallet
SSH Key Fingerprint: SHA256:qnW7pk4EoMRR0UftZLZQKSMUImbEFsiruLC7jbCHJAY
2 changed files with 33 additions and 4 deletions

View File

@ -13,7 +13,7 @@
"state": {
"type": "markdown",
"state": {
"file": "Algo/CM/CM du 27 septembre.md",
"file": "Algo/Séminaire/Exercices seminaire.md",
"mode": "source",
"source": false
}
@ -85,7 +85,7 @@
"state": {
"type": "backlink",
"state": {
"file": "Algo/CM/CM du 27 septembre.md",
"file": "Algo/Séminaire/Exercices seminaire.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@ -102,7 +102,7 @@
"state": {
"type": "outgoing-link",
"state": {
"file": "Algo/CM/CM du 27 septembre.md",
"file": "Algo/Séminaire/Exercices seminaire.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
@ -125,7 +125,7 @@
"state": {
"type": "outline",
"state": {
"file": "Algo/CM/CM du 27 septembre.md"
"file": "Algo/Séminaire/Exercices seminaire.md"
}
}
},

View File

@ -476,3 +476,32 @@ let prime n =
in (n = 2) || (n mod 2 = 1 and check n 3)
```
## Hanoi
```Ocaml
(* displays moves: source -> destination *)
let move source destination =
  print_int source ;
  print_string " -> " ;
  print_int destination ;
  print_newline()
;;
let hanoi n =
  let rec play n source auxiliary destination =
    if n = 1 then
      move source destination
    else
    begin
      play (n-1) source destination auxiliary;
      move source destination;
      play (n-1) auxiliary source destination
    end
  in
  if n < 0 then
    invalid_arg "Hanoi: number of disks invalid"
  else
    play n 1 2 3 (* Appel initial avec les piquets source, auxiliaire et destination *)
;;
hanoi 3;; (* Pour déplacer 3 disques de la tige 1 à la tige 3 *)
```