/* * 練習問題22.6 p.565 * nextGaussianを検査するプログラムを作成して、膨大な数の呼び出し結果をグラフ(*文字の棒グラフ)で表示しなさい。 */ package ch22.ex22_06; import java.util.HashMap; import java.util.Random; public class CheckNextGaussian { public static void main(String[] args) { Random rnd = new Random(); HashMap<Double, Integer> map = new HashMap<Double, Integer>(); double tmp = 0.0; int trialNumber = 100000; for (int i = 0; i < trialNumber; i++) { tmp = rnd.nextGaussian(); for (double j = -2.1; j < 2.0; j = j + 0.2) { if (j < tmp && tmp <= j + 0.2) { if (map.containsKey(j)) { map.put(j, map.get(j) + 1); } else { map.put(j, 1); } } } tmp = 0.0; } for(double i = -2.1; i < 2.0; i = i + 0.2) { System.out.printf("%+3f - %+3f, %4d: ", i, i + 0.2, map.get(i)); for(int j = 0; j < (int)(map.get(i) / (double)trialNumber * 100.0); j++) { System.out.print("*"); } System.out.println(""); } } }