/* S0840.java * 機械修理の問題 (理論値) * (C) H.Ishikawa 2008 */ package simulation; import java.applet.*; import java.awt.*; import java.text.DecimalFormat; public class S0840 extends Applet{ int M = 5; /* 機械の台数 */ int N = 2; /* 修理者の人数 */ double A = 10.0; /* 平均故障発生間隔 */ double H = 4.0; /* 平均修理時間 */ public void paint(Graphics g) { int j; /* 機械のforのカウンタ */ double p[] = new double[M + 1]; /* 機械がf台故障している時間の割合 */ double p0 = 0.0; DecimalFormat exFormat1 = new DecimalFormat(" 0.000000"); p[0] = 1; p[1] = (double)M * H / A * p[0]; for (j = 1; j <= N - 1; j ++) { p[j + 1] = (double)(M - j) / (j + 1) * H / A * p[j]; } for (j = N; j <= M - 1; j ++) { p[j + 1] = (double)(M - j) / N * H / A * p[j]; } for (j = 0; j<= M; j ++) { p0 = p0 + p[j]; } for (j = 0; j<= M; j ++) { p[j] = p[j] / p0; } for (j = 0; j <= M; j ++) { g.drawString("p["+ j + "] ="+ " " + exFormat1.format(p[j] ) ,10 , 20 + 10 * j); } } }