日期:2014-05-19  浏览次数:20677 次

概率问题:70%的概率执行情况A,30%的情况执行B
如题。老大说用Math.random()这个不精确,让自己写个算法。哪位高人指点下。在线等。

------解决方案--------------------
可以获取系统时间模一个参数(比如模10)来随机
Java code

public static int random() {
    TreeMap<Integer, Integer> map = new TreeMap<Integer, Integer>();
    map.put(0, 0);
    map.put(7, 1);
    int ran = (int)(System.currentTimeMillis()%10);
    return map.lowerEntry(ran).getValue().intValue();
}

if (random() == 0) {
    System.out.println("do A");
} else {
    System.out.println("do B");
}