/* S0410.java * 区間一様乱数の発生 * (C) H.Ishikawa 2008 */ package simulation; import java.applet.*; import java.awt.*; import java.awt.event.*; import window.Window; public class S0410 extends Applet implements ActionListener { Button button0; public void init() { button0 = new Button(" 再実行 "); add(button0); button0.addActionListener(this); } public void actionPerformed(ActionEvent e) { String label = e.getActionCommand(); repaint(); } public void paint(Graphics g){ Window w ; w = new Window(); int NUMBER = 10000; int SIZE = 20; /* ヒストグラムの大きさ */ int j; /* forのカウンタ */ int u; /* xの整数部分 */ double x; /* 一様乱数n個の合計 */ double a = 5; /* 一様分布の下限 */ double b = 15; /* 一様分布の上限 */ int f[] = new int[SIZE]; /* 頻度 */ /* グラフィックの準備 */ int SPACE = 40; int HIGHT = 400; int WIDTH = 640; w.setWindow(0, 0.0,0.0,20,0.1501, SPACE,HIGHT-SPACE,WIDTH-SPACE,SPACE); w.axis(0, "x",1, "f[x] / NUMBER", 0.050,g); /*メイン*/ for (j = 0; j < NUMBER; j ++) { x = a + (b - a) * Math.random(); u = (int)x; f[u] = f[u] + 1; } /* ヒストグラムを書く */ g.setColor(Color.red); for (u = 0; u < SIZE; u ++) { w.line(0, u + 0.5, 0, u + 0.5, (double)f[u] / NUMBER,g); } } }