package knights_tour

  1. Overview
  2. Docs

Source file randomize.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let rnd = Random.State.make_self_init ()

let list els =
  let arr = Array.of_list els in
  let sz = Array.length arr in
  for i = 0 to sz - 1 do
    let choices = sz - i in
    let pick = Random.State.int rnd choices in
    let tgt = sz - pick - 1 in
    let tmp = arr.(pick) in
    arr.(pick) <- arr.(tgt);
    arr.(tgt) <- tmp
  done;
  Array.to_list arr
OCaml

Innovation. Community. Security.