/****************************/ /* 乱数の生成 */ /* coded by Y.Suganuma */ /****************************/ import java.io.*; class Test { static void main(String args[]) throws IOException { double r; int i1, k, x1 = 123, x2, sum[] = new int [10]; for (i1 = 0; i1 < 10; i1++) sum[i1] = 0; for (i1 = 0; i1 < 1000000; i1++) { x2 = uniform(x1); x1 = x2; r = (double)x2 / Integer.MAX_VALUE; r = (r + 1.0) / 2.0; k = (int)(r / 0.1); if (k < 0) k = 0; else if (k > 9) k = 9; sum[k]++; } for (i1 = 0; i1 < 10; i1++) System.out.println(sum[i1]/1000000.0); } /******************************/ /* 混合合同法による乱数の生成 */ /******************************/ static int uniform(int x) { return 262145 * x + 17; } }