面接問題アルゴリズム問題
1.ボールを5つあげます.各ボールが引き抜かれる可能性は30、50、20、40、10です.ランダムアルゴリズムを設計します.このアルゴリズムの出力結果は今回実行した結果です.
A,B,C,D,Eを出力すればよい.
範囲の広いボールを一番上に置いて判断すると、一度や二度で判断できる確率が高くなり、理論的にも客観的にも判断の回数を減らすことができるはずです.ホフマン符号化の原理を利用した.
文字配列a[150]を作成します.a[1...50]='A',a[51....90]='D',...a[141...150]='E',そしてSystem.out.println(a[Math.random()*150])
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])