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

This commit is contained in:
2023-09-29 14:33:01 +02:00
parent 42653756f2
commit 51cdedeae1
2 changed files with 33 additions and 4 deletions

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 *)
```