Solution pour $k=11$ :
let sol = [|[|6; 5; 0; 0; 3; 7; 1|]; [|0; 6; 5; 0; 7; 0; 8|]; [|8; 0; 4; 3; 1; 2; 0|]; [|3; 6; 0; 0; 2; 4; 7|]; [|0; 4; 0; 5; 4; 1; 0|]; [|3; 1; 6; 0; 0; 2; 8|]; [|8; 0; 5; 0; 7; 2; 0|]|];;
Pour afficher une grille d'entiers :
let disp tab = for i=0 to Array.length tab - 1 do Array.iter (fun i -> print_int i; print_string " ") tab.(i); print_newline () done;;
Problème de type suguru :
let grp = [|[|0; 1; 2; 2; 2; 3; 3|]; [|0; 1; 2; 2; 4; 3; 3|]; [|0; 1; 1; 1; 4; 3; 3|]; [|0; 0; 1; 1; 4; 5; 3|]; [|0; 6; 6; 6; 5; 5; 7|]; [|8; 6; 6; 5; 5; 5; 7|]; [|8; 8; 6; 6; 9; 5; 10|]; [|8; 8; 11; 11; 11; 11; 10|]; [|12; 12; 11; 11; 11; 10; 10|]|];; let ind = [|[|3; 0; 0; 0; 0; 2; 0|]; [|4; 1; 0; 5; 0; 0; 7|]; [|0; 0; 7; 0; 0; 6; 0|]; [|2; 1; 0; 4; 0; 0; 5|]; [|0; 7; 0; 0; 0; 7; 1|]; [|0; 6; 0; 0; 0; 0; 0|]; [|3; 0; 0; 0; 0; 0; 3|]; [|0; 0; 0; 3; 0; 0; 0|]; [|0; 0; 0; 6; 0; 2; 0|]|];;