俺不懂~ {:1_254:}学好数学玩游戏也很给力 稍等,我编个程序算一算 本帖最后由 mikehood 于 2011-12-31 16:57 编辑
低级错误,删掉 {:1_268:}! 路过看看 {:1_229:}五楼是什么牛人? 由于lz 在题目中加入了 “最差退到1级”这样的一个条件 让我内牛满面了
我做不出来了 {:1_208:}还好《概率与统计》的老师并不认识我
不然我情何以堪啊 {:1_246:}求解 马化腾的DNF 一件装备从0级升到23级概率是多少 据说有个人做到了好像是能 成功的概率和中500W彩票差不多 膜拜5楼~ 本帖最后由 zzqzhangboy 于 2011-12-31 16:52 编辑
4,5楼亮了 佩服啊
还是你叼
实验结果最准确呀 {:1_246:}求解 马化腾的DNF 一件装备从0级升到23级概率是多少 据说有个人做到了好像是能 成功的概率和中500W彩票差不多
793529626 发表于 2011-12-31 16:27 http://www.shoudian.org/images/common/back.gif
我不知道 请问DNF是啥.? 本帖最后由 mikehood 于 2011-12-31 17:27 编辑
标准答案来了!
定义p(n,k)为练级n次后达到k级的概率,比如p(8,9)=0.3^8,再注意一些边界情况。
学过动态规划算法的同学应该能看懂:
public class Knife {
private static final int times = 1000;
private static final int max = 9;
private static double[][] sheet;
private static double p(int n, int k) {
double result;
if (sheet != -1) {
result = sheet;
} else if (n == 0) {
result = 0;
} else if (n == 1 && k == 1) {
result = 0.7;
} else if (n < k - 1) {
result = 0;
} else if (n == k - 1) {
result = Math.pow(0.3, n);
} else if (k >= max - 1) {
result = p(n - 1, k - 1) * 0.3;
} else if (k == 1) {
result = p(n - 1, 2) * 0.7 + p(n - 1, 1) * 0.7;
} else {
result = p(n - 1, k - 1) * 0.3 + p(n - 1, k + 1) * 0.7;
}
sheet = result;
return result;
}
public static void main(String[] args) {
sheet = new double;
for (int i = 0; i < times + 1; i++) {
for (int j = 0; j < max + 1; j++) {
sheet = -1;
}
}
double rate = 0;
for (int i = max - 1; i <= times; i++) {
rate += p(i, max);
}
System.out.println(rate);
}
}
计算结果是0.22855682741303354
页:
[1]