首先,我不在乎seed这个问题。
我的问题是,Random.self_init每次我想在我的函数中重新开始时我是否应该打电话?
let shuffle l =
Random.self_init ();
let tagl = List.map (fun x -> (Random.bits (), x)) l in
List.map (fun x -> snd x) (List.sort compare tagl);;
例如,在上面的代码中,是否Random.self_init ()有必要?