本帖最后由 leonjoho 于 2010-08-13 16:27:56 编辑

解决方案 »

  1.   


    public double f(int x, int y){
    if(y < x || y > 6*x){
    return 0;
    }
    if(x == 1){
    return 1.0/6;
    }else{
    double d = 0;
    for(int i = 1; i < 7; i ++){
    d = d + f(x-1,y-i)*1.0/6;
    }
    return d;
    }

    }可能有误差,如果用分数可能就正确。
    下面说说我的思想,
    X个骰子总和为Y的概率是下面概率之和
    (X-1)个骰子总和分别为(Y-1),(Y-2),(Y-3),(Y-4),(Y-5),(y-6)之和*1/6
    因为最后一个骰子只能是1,2,3,4,5,6,概率分别为1/6。
      

  2.   

    X 个 骰子每个骰子能扔出 6 个数字 概率分别是 1/6;
    这样总的有 X^6 种情况
    现在计算 X 到 6*X 的点数 分别有多少种组合
    最后就可以得出概率吧
    个人拙见