/*------------------------------------------------------ rep8ans.java 最頻値を求める(ただし最頻値が2つあるケースには未対応) -------------------------------------------------------*/ import java.text.*; // 表示形式用 import java.util.Random; // 乱数用 class rep8ans { public static void main(String[] args) { int a[] = new int[100]; // 配列a[0]〜a[99]生成:100個の乱数保持用 int b[] = new int[10]; // 配列b[0]〜b[9]生成:頻度保持用 int i, j, max; DecimalFormat fm1 = new DecimalFormat("00"); // 表示形式宣言 Random rnd = new Random(); // ランダムクラス宣言 for (i = 0; i < a.length; i++) { a[i] = rnd.nextInt(10); // 0〜9の整数値一様疑似乱数生成・代入 } for (i = 0; i < a.length; i++) { b[a[i]]++; // 頻度を数える:a[i]の値に該当する頻度値を1増やす } for (i = 0; i < b.length; i++) { // 結果表示 System.out.print(i + " (" + fm1.format(b[i]) + ")"); for (j = 0; j < b[i]; j++) { System.out.print("*"); // 頻度数(b[i])を「*」で描画 } System.out.println(); } max = 0; for (i = 0; i < b.length; i++) { if (b[i] > b[max]) { max = i; // 最大頻度を求める } } System.out.println("------------------------"); System.out.println("最頻値は" + max + "で,その頻度は" + b[max] + "です."); } }