动态规划 传球问题

学习动态规划一段时间了,这是我最头痛的一段时间,我对动态规划的的感觉用一句话说 就是相当蛋痛。

我与他似乎隔着一层东西怎么也捅不破,我去年看过这东西没弄明白,放弃了。今年蓝桥杯进了决赛,没办法只好在重新拿起来。

我看了相当多的介绍文档 ,斯坦福大学的动态规划课程我也看了,就是蛋痛。。。

我想起我们离散数学老师说过的话:我们这个课程不建议你预习,因为一但理解错误很难纠正,我大概就是这个原因吧!

今天看了一道动态规划的题目在这里记录一下,算式我动态规划的起步吧~~不能只是起步 要能跑起来。

进入正题

上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。 
游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大家表演一个节目。 
聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次以后,又回到小蛮手里。两种传球的方法被视作不同的方法,当且仅当这两种方法中,接到球的同学按接球顺序组成的序列是不同的。比如有3个同学1号、2号、3号,并假设小蛮为1号,球传了3次回到小蛮手里的方式有1->2->3->1和1->3->2->1,共2种。 


因为我没有彻底理解动态规划所以我看到题我就试着解解试一下,动态规划嘛 就是1状态2阶段3决策 这个状态就是就是小孩了,阶段就是m次传球就是m个阶段了 ,决策就是从第当前阶段到下一阶段的转移条件(转移条件就是从限制条件中找)  我上来傻×了 我就开始推 (一个孩子,1次传球)->(一个孩子,2次传球)。。。。这样推,没推出来。苦逼一会我看答案了 。

因为中间传球阶段不能传给小蛮(小蛮是1号) 所以让1号的中间阶段为0,在就是最后要到一号手里 所以最后阶段为一号为1

我们如图:

 


从第0个阶段在1号手里 到第1个阶段传给左右两半的同学一直到最后再到一号手里 我们把这些结果相加就能得到最终的答案了。

这个中间的过程应该能想象吧,不断的分支m层,这中间有很多重复的计算,所以我们要建表来避免重复,记录中间结果,f[i,n]={f[i-1,n+1]+f[i+1,n+1]来建表 这样逐层来计算 就不会有重复的操作了,我们就能很快的计算。

以上图片来自豆丁网 关于这篇文章我阅读与http://www.docin.com/p-238029095.html 可以自己看一下,代码我没有看就没有解释;


动态规划~~~不省心啊 ! 感谢自己记录下的又一篇文章;

你可能感兴趣的:(动态规划 传球问题)