私が作業しているプロジェクトでは、double
の数値をランダムに生成するか(入力ファイルの内容に応じて)、またはdoubles
に変換する必要があります私は自分の入力ファイルからそれらを持っています。これらの数字は、コンマの後に小数点以下2桁(例:0.98
)でなければなりません。Javaでランダムな倍精度浮動小数点数を生成する最速の方法
- のJava 8の方法:
nthNumber = Double.parseDouble(new DecimalFormat("#.##").format(ThreadLocalRandom.current().nextDouble(0,1)).replace(",","."));
- 昔ながらの方法:
nthNumber = Double.parseDouble(new DecimalFormat("#.##").format(new Random().nextDouble()).replace(",", "."));
漸近的に言えば、これは私は、Java 8で、これを行う2つの方法があることを知っている
最速ですか? ADSの私の貧弱な知識から、私はそれは同じ時間になるでしょうね(O(n)
?)私は、別にこれら二つの方法から確認
100%ではないよ0
の間でランダムdoubles
を生成するための他の方法がありますと1
私の提案よりも速く、漸近的に言えば、ですか? (むしろ、O(n)
またはO(1)
ですべてを行うことができます方法がある?)
は、として文字列を使用する鉱山
は 'Math.random()' – Bene
が速くランダム()。nextDouble()またはThreadLocalRandom.current.nextDouble()よりも、それはありますか? –
O(n) – xenteros