设为首页 加入收藏

TOP

hdu 4562 Dice 求期望 推数学公式
2014-11-23 19:09:20 来源: 作者: 【 】 浏览:9
Tags:hdu 4562 Dice 期望 数学 公式

这题的状态转移方程应该是很好推的吧,如果推不出方程,那也不用担心,多做点求期望的题就有感觉了。


设dp[i]表示当前在 已经投掷出 i个 不相同/相同 这个状态时期望还需要投掷多少次。然后dp[0]就是答案

相同的情况:
dp[0] = 1 + dp[1]
dp[1] = 1 + ( (m-1)*dp[1] + dp[2] ) / m
dp[i] = 1 + ( (m-1)*dp[1] + dp[i+1] ) / m
...
dp[n] = 0;


我们拿出i和i+1项来
dp[i] = 1 + ( (m-1)*dp[1] + dp[i+1] ) / m
dp[i+1] = 1 + ( (m-1)*dp[1] + dp[i+2] ) / m


上下相减得 :m * (dp[i] - dp[i+1]) = dp[i+1] - dp[i+2];


令 d[i] = dp[i] - dp[i+1]; 则d[]为公比为m的等比数列, 且d[0] = 1;


所以d[i] = m^i, 然后由列项相消得 dp[0] - dp[i+1] = m^0+m^1+.....+m^i;


令i+1 = n 则 dp[0] = m^0+m^1+.....+m^(n-1);


不相同的情况:
dp[0] = 1 + dp[1]
dp[1] = 1 + (dp[1] + (m-1) dp[2]) / m
dp[2] = 1 + (dp[1] + dp[2] + (m-2) dp[3]) / m
dp[i] = 1 + (dp[1] + dp[2] + ... dp[i] + (m-i)*dp[i+1]) / m
...
dp[n] = 0;

跟相同的情况一样,选出 dp[i] 和 dp[i+1] 这两行相减 得

dp[i] - dp[i+1] = (m-i-1)/m * (dp[i+1] - dp[i+2]);

令 d[i] = dp[i] - dp[i+1]. 则 d[i] = (m-i-1)/m * d[i+1], 且d[0] = 1;

这个公式看上去跟相同时的情况差不多,不过不能往下化简了

但我们可以根据这个递推关系式 求出每个d[i],


然后再 对其列项相消 就可以发现 dp[0] = d[0] + d[1] + d[2] + ..... + d[n-1];

套这两个公式,代码很短就能AC了, 所以代码也不给出

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇poj1934 Trip 下一篇简单dfs hdu 4536 XCOM Enemy Unk..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·求navicat for mysql (2025-12-26 13:21:33)
·有哪位大哥推荐一下m (2025-12-26 13:21:30)
·MySQL下载与安装教程 (2025-12-26 13:21:26)
·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)