习题1 从1-5随机到1-7
private static int f() {
return (int) (Math.random() * 5) + 1;
}
private static int f1() {
int num = f();
while (num == 3) {
num = f();
}
return num < 3 ? 0 : 1;
}
private static int f2() {
int num = (f1() << 2) | (f1() << 1) | (f1());
return num;
}
private static int f3() {
int num = f2();
while (num == 7) {
num = f2();
}
return num + 1;
}
习题2 0-1不等概率到0-1等概率
public static int f() {
return Math.random() < 0.3 ? 0 : 1;
}
public static int f1(){
int num = f();
while (num == f()){
num = f();
}
return num;
}