题意:
刚开始持有x元钱
将进行M轮赌博
每轮赢得概率为P
赢则赌注翻倍,输则赌注全无
问最优策略下赚得1000000元钱(或以上)的概率。
思路:
搜索:
double chance(int cengshu, int money)
{
if(cengshu== M )
{
if(money>=1000000)
return 1;
if(money>=500000)
return 0.5;
return 0;
}
double chance_now = 0.0;
for(int I = 0; i<= money; i++)
chance_now=min(chance_now,P*chance(cengshu+1,money+i)+(1-P)*chance(cengshu+1,money-i));
returnchance_now;
}
定义dp[i][j]为初始赌资2^j元经过i轮赌博赌资扩大到2^M元的概率
令x = min(j, 2^M)
则dp[i+1][j] = max{P*dp[i][j+y] + (1-P)*dp[i][j-y]} (0<=