面接問題アルゴリズム問題


1.ボールを5つあげます.各ボールが引き抜かれる可能性は30、50、20、40、10です.ランダムアルゴリズムを設計します.このアルゴリズムの出力結果は今回実行した結果です.
A,B,C,D,Eを出力すればよい.
範囲の広いボールを一番上に置いて判断すると、一度や二度で判断できる確率が高くなり、理論的にも客観的にも判断の回数を減らすことができるはずです.ホフマン符号化の原理を利用した.
public static String ranomBall() {
  int ran = (int)(Matn.random()*150);
  if (ran < 50) {
  return "B";
  } else if (ran < 90) {
  return "D";
  } else if (ran < 120) {
  return "A";
  } else if (ran < 140) {
  return "C";
  } else {
  return "E";
  }
}
System.out.println(randomBall());
個以上はどうすればいいですか?
文字配列a[150]を作成します.a[1...50]='A',a[51....90]='D',...a[141...150]='E',そしてSystem.out.println(a[Math.random()*150])