本文主要是介绍概率题 宝剑升级需要多少宝石,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
你有一把宝剑。每使用一个宝石,有50%的概率会成功让宝剑升一级,50%的概率会失败。 如果宝剑的级数大于等于5的话,那么失败会使得宝剑降1级。如果宝剑的级数小于5的话, 失败没有效果。问题是:期望用多少个宝石可以让一把1级的宝剑升到9级?
i<5 : dp[i] + 1 = 0.5 * dp[i+1] + 0.5 * dp[i]
i >= 5: dp[i] + 1 = 0.5 * dp[i-1] + 0.5 * dp[i+1]
void solve(int n ) {int dp[n+1];dp[1] = 0;for (int i = 2; i <= n; i++) {if (i <= 5) {dp[i] = dp[i-1] + 2;} else {dp[i] = 2 * dp[i-1] + 2 - dp[i-2];}printf( "dp[%d]=%d\n", i, dp[i] );}
}int main(int argc, char *argv[]) {// freopen("A.txt", "r", stdin);solve(11);return 0;
}
这篇关于概率题 宝剑升级需要多少宝石的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!