OCamlの私のプログラムでは、巨大な文字列からランダムに文字列を選択する必要があります。私は今までこれを行う2つの異なる方法を試しましたが、それぞれほとんど成功しませんでした。私が最初にリストにすべての文字列を格納し、その後、無作為にリストから要素を選択します:Ocamlで要素をランダムに選択する方法はありますか?
let randomelement l =
List.nth l (Random.int (List.length l))
しかし、それは、リスト内の1000番目の文字列を選択した場合、これは長い時間がかかります。だから、私はすべてをセットに入れて、Set.choose
がセットからランダムな要素を返すだろうと考えました。しかし、それは動作していないようです。私は2つの質問があると思います...どうすればSet.choose
が動作し、Ocamlの要素をランダムに選択するより良い方法がありますか?
ああ、私は配列がO(1)時間だったのか分からなかった。それは素晴らしいです、そして、それは私がすることです。ありがとう! – Travis