import java.awt.*; import java.awt.event.*; import java.applet.*; public class Applet1 extends Applet { private boolean isStandalone = false; private TextField nField = new TextField(); private TextField kField = new TextField(); private Button probbutton = new Button(); private TextField rField = new TextField(); private Label label1 = new Label(); private Label label2 = new Label(); private Label label3 = new Label(); //引数値の取得 public String getParameter(String key, String def) { return isStandalone ? System.getProperty(key, def) : (getParameter(key) != null ? getParameter(key) : def); } //アプレットのビルド public Applet1() { } //アプレットの初期化 public void init() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //コンポーネントの初期化 private void jbInit() throws Exception { nField.setText("5"); nField.setBounds(new Rectangle(64, 43, 62, 25)); this.setLayout(null); kField.setBounds(new Rectangle(194, 44, 67, 25)); kField.setText("3"); probbutton.setLabel("計算"); probbutton.setBounds(new Rectangle(55, 87, 79, 24)); probbutton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { probbutton_actionPerformed(e); } }); rField.setText("0"); rField.setBounds(new Rectangle(177, 124, 83, 26)); label1.setText("n"); label1.setBounds(new Rectangle(35, 47, 17, 16)); label2.setText("k"); label2.setBounds(new Rectangle(161, 49, 22, 16)); label3.setText("n回投げてk回成功"); label3.setBounds(new Rectangle(168, 88, 114, 30)); this.add(kField, null); this.add(nField, null); this.add(label1, null); this.add(label2, null); this.add(probbutton, null); this.add(rField, null); this.add(label3, null); } //アプレットの情報取得 public String getAppletInfo() { return "アプレット情報"; } //引数情報の取得 public String[][] getParameterInfo() { return null; } void probbutton_actionPerformed(ActionEvent e) { int nnum=Integer.parseInt(nField.getText()); int knum=Integer.parseInt(kField.getText()); double prob=0.0; int cb=comb(nnum,knum); prob=cb*Math.pow(5.0,nnum-knum)/Math.pow(6.0,nnum); System.out.println("nCk:"+cb); rField.setText(Double.toString(prob)); } int fact(int num){ int rs=1; for (int i=1;i<=num;i++){ rs = rs*i; } return rs; } int comb(int nnum,int knum) { int rs=1; for (int i=nnum;i>nnum-knum;i--){ rs = rs*i; } return rs/fact(knum); } }