求投掷N个骰子总和概率的算法面试题,急急急急急 本帖最后由 leonjoho 于 2010-08-13 16:27:56 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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。 X 个 骰子每个骰子能扔出 6 个数字 概率分别是 1/6;这样总的有 X^6 种情况现在计算 X 到 6*X 的点数 分别有多少种组合最后就可以得出概率吧个人拙见 求看看这道面试题目 面试题:linux中,如何查看java进程中的线程状态 WizardPage的finish置灰 如何得到不重合的指定范围的二维数组 怎样在同一个浏览器网页中从一个applet转换到另一个applet,并且传递数据 在这里发一张帖,两星期不用顶 我该用哪个工具??????????????? 请帮我看看这段程序有什么问题好吗? 大家看过这个吗?怎么没多少人发表评价? 推荐几本好书给我这样的初学者!!! 关于 GetPropertyAction 的问题 Java一个菜鸟问题
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。
这样总的有 X^6 种情况
现在计算 X 到 6*X 的点数 分别有多少种组合
最后就可以得出概率吧
个人拙见