我想要生成列表元素的随机排列, 示例:
listString = ["a"; "b"; "c"; "d"; "e"; "f"]
我想要类似的东西:
result = ["a"; "e"; "f"; "b"; "d"; "c"]
但是每次调用函数时结果都会改变。 所以当我第二次调用该函数时返回类似:
result = ["c"; "d"; "b"; "f"; "e"; "a"]
我找到了解决方案:
let shuffle d =
Random.self_init ();
let nd = List.map (fun c -> (Random.bits (), c)) d in
let sond = List.sort compare nd in
List.map snd sond
Random.self_init () 行;使用以系统相关方式选择的随机种子初始化生成器。