- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一様乱数?疑似乱数?)
一様乱数と疑似乱数の違いとは?ヒストグラムを作成する方法
このQ&Aのポイント
- 質問文章では、一様乱数と疑似乱数の違いについて知りたいということです。
- また、ヒストグラムを作成する方法についても質問があります。
- Math.randomを用いる方法とRandomクラスの方法の違いについても疑問があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Java Runtime packageのソースはjdk: jdk-6u16-windows-i586.exe 等に含まれているので参照して確認してください。 jdk install directory top: src.zip 展開 ==> src\java\util\Random.java new Random() とした場合は seed value として System.nanoTime()を元に作成した値:毎回異なった値が使われます。 new Random(long seed), setSeed(long seed)とした場合はparameterとして与えられたseedに基づいた、固定シーケンスの欄数列が得られます。(現象の再現試験等に必要) >for(int j=1; j<=10; j++){//koko if(rdm.nextDouble() < ((j-1)*0.1) && rdm.nextDouble() >= (j*0.1)) aa[j-1] = aa[j-1] + 1; } この例は問題があります。 一つの乱数を得て、それに対するaa[j-1]をincrementすれば良いのに、 rdm.nextDouble()で毎回違った乱数を得ています。最小2回、最大20回求め、最悪if文を満足するものが得られない場合もあります。 int j; double x; ...... for(int i = 0; i < 1000; i++){ x = nextDouble(); j = x*10.0; aa[j]++; } 以上のようにすれば良いと思います。
お礼
納得いきました。ご丁寧にありがとうございました。