算法合集之《运用化归思想解决信息学中的数列问题》

上传人:正** 文档编号:54103023 上传时间:2018-09-07 格式:PPT 页数:28 大小:2.39MB
返回 下载 相关 举报
算法合集之《运用化归思想解决信息学中的数列问题》_第1页
第1页 / 共28页
算法合集之《运用化归思想解决信息学中的数列问题》_第2页
第2页 / 共28页
算法合集之《运用化归思想解决信息学中的数列问题》_第3页
第3页 / 共28页
算法合集之《运用化归思想解决信息学中的数列问题》_第4页
第4页 / 共28页
算法合集之《运用化归思想解决信息学中的数列问题》_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《算法合集之《运用化归思想解决信息学中的数列问题》》由会员分享,可在线阅读,更多相关《算法合集之《运用化归思想解决信息学中的数列问题》(28页珍藏版)》请在金锄头文库上搜索。

1、福建省福州市第一中学,余林韵,运用化归思想解决信息学中的数列问题,1、1、1、2、1 1、1、1、2、1 ,走队列喊口号,日常生活中,年份,2006,2007,2008,2009,按某种法则排列着的一列数,数列,解决数列问题,知识!,化归、猜想!,化归,就是转化和归结,问题甲,比较容易解决的问题乙,化归方法的要素,化归对象 即对什么东西进行化归 化归目标即化归到何处去 化归途径即如何进行化归,Dispute (Ural 1309),数列Fn满足:其中给定n,求解Fn。,数据规模0=N3年,黄花菜都凉了,Dispute (Ural 1309),算法一分割的太暴力!,如何“温柔”一些?,再次观察数

2、列,函数gx,y 的特点:gx,y =(y-1)*x5+x3-xy+3x+7y) mod 99731、所有项y的指数非0即1 2、式子的最后取模了一个质数9973,性质1,把x看作一个常数,整理后可得:gx,y=(x5-x+7)y +(-x5+x3+3x) mod 9973 数列Fn是个1阶线性递推数列。 联想:计算常系数线性递推数列的第N项可以利用矩阵乘法的方法 调整化归目标:看看能否通过合理的分段,将数列变成常系数线性递推数列。,性质2,令M=9973 则有常数A,B使得:Fkm=A*F(k-1)m+B,,成功化归!,其余三道例题,ABS序列(Top Coder SRM 369 - Div

3、 1 - 500 Points)Count(NOI2007)Maximum. Version 2(Ural 1396),Time Limit,总结,数列问题千变万化,化归不是万能的,牢牢抓住问题的本质,认真仔细观察,敢于大胆猜想 富有创新精神,发现数列的美,走向成功!,谢谢大家,欢迎提问,性质2的证明,令Ui=(j5-j+7) mod M, Vi=(-j5+j3+3*j) mod M, j=i mod M + 1 Fi+1= Ui *Fi+Vi FKM+1=(UKM+1*FKM+VKM+1) mod M FKM+2=(UKM+2*FKM+1+VKM+2) mod M FKM+3=(UKM+3*

4、FKM+2+VKM+3) mod M F(K+1)M=(U(K+1)M*F(K+1)M-1+V(K+1)M) mod M,性质2的证明,F(K+1)M=(U(K+1)M*F(K+1)M-1+V(K+1)M) mod M=(U(K+1)M*(U(K+1)M-1*F(K+1)M-2+V(K+1)M-1 )+V(K+1)M) mod M=(U(K+1)M*U(K+1)M-1*F(K+1)M-2+U(K+1)M*V(K+1)M-1+V(K+1)M) mod M,性质2的证明,F(K+1)M=(A*FKM+B) mod MUi=(j5-j+7) mod M=Ui=U(i+M) Vi=(-j5+j3+3*

5、j) mod M=Vi=V(i+M) A,B为定值,计算常系数线性递推数列的第N项,矩阵乘法:两个矩阵A,B,A=(ai,j)n*m,B=(bi,j)m*t复杂度:O(NMT) 满足结合律,即,计算常系数线性递推数列的第N项,递推数列 一个数列的连续项之间的关系叫递推关系,由递推关系确定的数列叫递推数列 常系数线性递推数列 由初始值和方程an+k=F(an+k-1,an)的数列an称为k阶递推数列 特别的,当方程形如下式的时候数列an称为k阶常系数线性递推数列。an+k=c1an+k-1+c2an+k-2+ckan+f(n),这里c1,c2ck为常数,其中ck0 如果f(n)=0,那么数列an称为k阶常系数齐次线性递推数列。,计算常系数线性递推数列的第N项,以广义Fibonacci数列为例: F1=a,F2=b,FN=FN-1+FN-2 观察数列前几项: F3=F1+F2=a+b F4=F2+F3=F2+(a+b)=a+2b F5=F3+F4=(a+b)+(a+2b)=2a+3b 数列的任意一项都是由若干个a与b相加组成的!,计算常系数线性递推数列的第N项,用矩阵乘法解决:,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号