递推法解题
递推法
输入:x=1 y=2 z=8 输出:37
分析
首先我们来看样例:每隔1个月产2对卵,求过8 月(即第8+1=9月)的成虫个数
月份 1 2 3 4 5 6 7 8 9 … 新增卵 0 2 2 2 6 10 14 26 46 … 成虫 1 1 1 3 5 7 13 23 37 …
计算河心n个石礅可承载的最大青蛙数
设f[i]表示河心i个石礅可承载的最大青蛙数(1<=i<=n) 左岸为A,右岸为D
(1) 0个石礅,f[0]=0 (2) 1个石礅,f[1]=m+1 (3) 2个石礅s1,s2,f[2]=?
(1)A上m+1只青蛙s1 (2) A上m+1只青蛙 s2 , (3)s1上的m+1青蛙 s2 (4) A上m+1只青蛙s1 因此,f[2]=m+1+f[1]+f[1]=3*(m+1) (4) 3个石礅s1,s2,s3, (1)A上3(m+1)只青蛙s1,s2 (2) A上m+1只青蛙 s2 , (3)s1,s2上的3(m+1)青蛙 s2 (4) A上3(m+1)只青蛙s1,s2 因此,f[3]=m+1+2*f[2]=7*(m+1) …… (5) n个石礅? (1)A上f(n-1)只青蛙s1…sn-1 (2) A上m+1只青蛙 sn (3)s1…sn-1上的f(n-1)只青蛙sn (4) A上f(n-1)只青蛙s1…sn-1 因此, f[n]=m+1+2*f[n-1]
分析
设数组A[i]表示第i月新增的成虫个数。 由于新成虫每过x个月产y对卵,则可对每个A[i]作如下
递推法
Fibonacci数列的应用
Fibonacci数列是最著名的递推公式。经常 出现在各种竞赛题中。 你能看出这几个题都是这个问题的应用吗?
例2 完美覆盖问题
问题描述:有2×n的一个长方形棋盘,用一些1×2的骨牌铺满 方格.例如n=3时,在2×3的棋盘上用1×2的骨片覆盖,共有 3种铺法。
问题求解:编写一个程序,试对给出的任意一个n(n>0),输出铺
01串
有1个长为n的01串,要求不能出现101和111.求符合条件的字符串有多 少个? n<1000000 分析一:设a[n]为n个字符最后两位为00所形成的方案数,同样,b[n]对 应最后两位为01,c[n]对应最后两位为10,d[n]对应最后两位为11. 则a[n]=a[n-2]+b[n-2]+c[n-2]+d[n-2]=a[n-1]+c[n-1] b[n]=a[n-1]=f[n-3] c[n]=b[n-1]+d[n-1] d[n]=b[n-1]=a[n-2]=f[n-4] 所以f[n]=a[n]+b[n]+c[n]+d[n]=f[n-1]+f[n-3]+f[n-4]
我们用递推法求解问题时,关键是找出后项与前项之前的数学关系。 然后从初始项开始,逐项递推。在算出前n-1项之前,我们是不知道第 n项的值的。可以说,为了求第n项值,我们总共要计算n次,因此时间 复杂度为O(n)
而通项式建立的是第n项与项数n之间的数学关系。我们可以直接用项 数n计算出第n项的值。可以说,为了求第n项的值,我们只需计算1次 ,因此时间复杂度为O(1)
生成树的数目
在网格中取一个N x 1的矩形,并把它当作 一个无向图。这个图有2(N+1)个顶点,有 3(N-1)+4条边。这个图有多少个生成树? 样例输入:1 样例输出:4
数列递推公式的九种方法
求递推数列的通项公式的九种方法利用递推数列求通项公式,在理论上和实践中均有较高的价值.自从二十世纪八十年代以来,这一直是全国高考和高中数学联赛的热点之一.一、作差求和法例1在数列{n a }中,31=a ,)1(11++=+n n a a n n ,求通项公式n a .解:原递推式可化为:1111+-+=+n n a a n n 则,211112-+=a a 312123-+=a a 413134-+=a a ,……,n n a a n n 1111--+=-逐项相加得:n a a n 111-+=.故na n 14-=.二、作商求和法例2设数列{n a }是首项为1的正项数列,且0)1(1221=+-+++n n n n a a na a n (n=1,2,3…),则它的通项公式是n a =▁▁▁(2000年高考15题)解:原递推式可化为:)]()1[(11n n n n a a na a n +-+++=0∵n n a a ++1>0,11+=+n na a n n 则,43,32,21342312===a a a a a a ……,nn a a n n 11-=-逐项相乘得:na a n 11=,即n a =n 1.三、换元法例3已知数列{n a },其中913,3421==a a ,且当n≥3时,)(31211----=-n n n n a a a a ,求通项公式n a (1986年高考文科第八题改编).解:设11---=n n n a a b ,原递推式可化为:}{,3121n n n b b b --=是一个等比数列,9134913121=-=-=a a b ,公比为31.故n n n n b b 31()31(9131(2211==⋅=---.故n n n a a )31(1=--.由逐差法可得:nn a )31(2123-=.例4已知数列{n a },其中2,121==a a ,且当n ≥3时,1221=+---n n n a a a ,求通项公式n a 。
九类常见递推数列求通项公式方法
九类常见递推数列求通项公式方法递推数列通项求解方法类型一:an1panq(p1)思路1(递推法):anpan1qp(pan2q)qpppan3qqq……pn1a1q(1pp2…pn2qqn1。
)a1pp11p思路2(构造法):设an1pan,即p1q得qp1,数列an是以a1为首项、p为公比的等比数列,则anqn1qana1pp11pqn1a1p,即p1p1q例1已知数列an满足an2an13且a11,求数列an的通项公式。
解:方法1(递推法):an2an132(2an23)3222an3333……2n13(122…22n23n13n1)1223。
2112方法2(构造法):设an12an,即3,数列an3是以a134n1n1n1为首项、2为公比的等比数列,则an3422,即an23。
类型二:an1an思路1(递推法):f(n)anan1f(n1)an2f(n2)f(n1)an3f(n3)f(n2)f(n1)…a1f(n)。
i1n1思路2(叠加法):anan1f(n1),依次类推有:an1an2f(n2)、n1an2an3f(n3)、…、a2a1f(1),将各式叠加并整理得ana1i1f(n),即n1ana1i1f(n)。
例2已知a11,anan1n,求an。
解:方法1(递推法):anan1nan2(n1)nan3(n2)(n1)nn……a1[23…(n2)(n1)n]i1nn(n1)2。
方法2(叠加法):anan1n,依次类推有:an1an2n1、an2an3n2、…、nnna2a12,将各式叠加并整理得ana1i2n,ana1i2ni1nn(n1)2。
类型三:an1f(n)an思路1(递推法):anf(n1)an1f(n1)f(n2)an2f(n1)f(n2)f(n3)an3…f(1)f(2)f(3)…f(n2)f(n1)a1。
anan1a2a1an1an2ana1思路2(叠乘法):f(n1),依次类推有:f(n2)、an2an3f(n3)、…、f(1),将各式叠乘并整理得f(1)f(2)f(3)…f(n2)f(n1),即anf(1)f(2)f(3)…f(n2)f(n1)a1。
递推法
递 推 法刘海东 江苏省东台市第一中学一、内容概述递推关系是一种简洁高效的常见数学模型,比如Fibonacci 数列问题.特点:在递推问题中,每个数据项都和它前面的若干数据项(或后面的若干数据项)有一定的关联,这种关联一般经过“递推关系式”表示.问题求解一般从初始的一个或若干个数据项出发,通过递推关系逐步推进,从而得到最终结果,这种求解问题的方法叫“递推法”.其中,初始的若干数据项称为“边界”. 下面借助几种典型的数列递推公式利用递推法求解.二、例题示范1.运用累加(累乘)法求解类型Ⅰ :()n f a a n n +=+1先介绍一下差数列的概念:对于数列{}n a ,设n n n a a b -=+1,1=n ,2,…,则称数列{}n b 是{}n a 的差数列,于是n b b b +++ 21=()()()112312a a a a a a a a n n n -=-++-+-- ,∴∑--+=111n k kn ba a .∴对于()n f a a n n +=+1型的递推公式,它的通项公式为:()∑--+=111n k n k f a a ()2≥n ①当1=n 时,①式仍成立,∴①式即为{}n a 的通项公式. 类型Ⅱ :()1n n b b g n +=⨯对于()1n n b b g n +=⨯型的通项公式,它的通项公式为()()()1211-⋅=n g g g b b n .例1已知数列{}n a 满足,11=a 113--+=n n n a a ()2≥n .(1)求2a ,3a ;(2)证明213-=n n a .解:(1)∵,∴;(2)证明:由已知,故,∴.评析:(1)一般地,对于型如()n f a a n n +=+1的递推公式,只要()()()12f f f n +++能进行求和,则宜采用“累加法”求得通项公式()∑-=+=111n k n k f a a ;(2)一般地,对于型如()1n n b b g n +=⨯类的通项公式,只要()()()12g g g n ⨯⨯⨯能进行求积,则宜采用 “累乘法”来求得其通项公式为()()()1211-⋅=n g g g b b n .2.构造等差(等比)数列法求解类型Ⅲ:q pa a n n +=+1 (p, q 为常数) 当1=p 时,数列{}n a 为等差数列; 当0=q ,0≠p 时,数列{}n a 为等比数列.我们主要求1≠p 时,利用递推公式求通项公式,构造出一个新的数列. 法一:q pa a n n +=+1 ① q pa a n n +=-1 2≥n ② ①-②得 ()11-+-=-n n n n a a p a a , 即p a a a a n n nn =---+11,∴{}n n a a -+1构成等比数列,1121)(-+⋅-=-n n n p a a a a 转化为类型Ⅰ,再利用“累加法”求{}n a 的通项公式.再利用等比数列知识求{}n a 的通项公式.例2在数列{}n a 中,若32,111+==+n n a a a ()*∈≥N n n 且1,则该数列的通项na=.分析:法一:321+=+n n a a ① 和321+=+n n a a 2≥n ②,①-②得 ()112-+-=-n n n n a a a a ,即211=---+n n nn a a a a ,∴{}n n a a -+1构成等比数列.法二:设)(21αα+=++n n a a ,∴α+=+n n a a 21 ∴3=α.解:(法一)53212=+=a a ,∴412=-a a . 321+=+n n a a , 321+=-n n a a (2≥n ), ∴()112-+-=-n n n n a a a a ,211=--∴-+n n nn a a a a .∴{}n n a a -+1是以4为首项,2为公比的等比数列.∴111224+-+=⨯=-n n n n a a , ∴()()()12111a a a a a a a n n n n n -++-+-=-++ =121222a n n -++++ =322-+n ,∴321-=+n n a .(法二)设)(21αα+=++n n a a ,∴α+=+n n a a 21,又321+=+n n a a ,∴3=α.∴{}3+n a 是以4为首项,2为公比的等比数列 .∴1243-⨯=+n n a , ∴321-=+n n a .评析:(1) 型如q pa a n n +=+1型的递推公式,当1≠p 时,利用递推公式求数列的通项公式.例2给出了两种方法,都是构造出一个新数列,平时我们主要使用法二(待定系数法).(2) 型如()n q pa a n n +=+1()1≠p 型递推公式,当()n q 为常数q 时,它就是类型Ⅲ;当()n q 为n 的函数时,在等式两边同时除以1+n p ,得()111++++=n n n n n p n q p a p a ,令n n n p a b =,()()1+=n pn q n f 得()n f b b n n +=+1,它即为模型Ⅰ,先求出n b 的通项公式,从而得到n n n b p a ⋅=.3. 综合应用例3设数列{}n a 的首项411≠=a a ,且⎪⎪⎩⎪⎪⎨⎧+=+为奇数为偶数n a n a a n nn ,41,211,=-=-n a b n n ,41121,2,…(1)求2a ,3a ;(2)判断数列{}n b 是否为等比数列,并证明你的结论; (3)求()n mn b b b ++→21lim .解:(1)812121,41412312+==+=+=a a a a a a . (2)因为83214134+=+=a a a ,所以163412145+==a a a ,所以414111-=-=a a b ,⎪⎭⎫ ⎝⎛-=-=41214132a a b ,⎪⎭⎫⎝⎛-=-=41414153a a b . 猜想:{}n b 是公比为21的等比数列. 证明如下:因为⎪⎭⎫ ⎝⎛-=-⎪⎭⎫ ⎝⎛+=-=-=--++412141412141214112122121n n n n n a a a a b =()*∈N n b n ,21, 所以{}n b 是首项为41-a ,公比为21的等比数列. (3)()n m n b b b ++→21lim =⎪⎭⎫ ⎝⎛--=-⎪⎭⎫ ⎝⎛-→412211211211lim 11a b b n m n . 评析:本题考查数列基本知识,涉及递推关系、等比数列的定义、等比数列的前项和以及数列极限等知识.本题以代数推理的形式考查演绎推理能力,兼顾对观察、归纳、猜想能力和运算能力的考查.例4(2017江苏徐州信息卷)将边长为1的正三角形ABC 各边*(2,)n n n ∈N ≥等分,过各等分点在ABC △内作边的平行线.如图所示是2n =时的图形.记ABC △中边长为1n的菱形的个数为()f n .(1)写出(2)f 的值; (2)求()f n 的值.AB C… … …(例4)ABCB ′C ′ 分析:本题解决的关键是找出()n f 与()1-n f 的关系()(1)3(1)f n f n n =-+-,再利用“累加法”来求()n f 的通项公式. 解:(1)(2)3f =.(2)设与BC 相邻的平行线为''B C , 则''AB C △中边长为1n 的菱形的个数为(1)f n -. 考虑()f n 比(1)f n -增加的菱形数:以1''1B C n -为对角线的菱形数为1n -; 以1''1B C n -为一边,对边在BC 上的菱形数为2(1)n -. 所以()(1)(1)2(1)f n f n n n =-+-+-(1)3(1)f n n =-+-.则(3)(2)32f f -=⨯, (4)(3)33f f -=⨯, ……,()(1)3(1)f n f n n --=-,上述各式相加,得()(2)3[23(1)]f n f n -=+++-,所以()(2)3[23(1)]f n f n =++++-3[123(1)]n =++++-3(1)2n n -=. 当1=n 时,上式仍成立,()3(1)2n n f n -∴=评析:本题通过“观察—归纳—猜想” 找出()n f 与()1-n f 的关系()(1)3(1)f n f n n =-+-,转化为模型Ⅰ;也可直接猜想出()n f ,再用数学归纳法加以证明.练习1 已知数列{}n a 满足n n a n a a a a 2211,21=++=,求数列{}n a 的通项公式. 解:设数列{}n a 的前n 项和为n S ,则1212)1(,---==n n n n a n S a n S所以()12211----=-=n n n n n a n a n S S a ,即()()12211--=-n n a n a n ,所以,()1111221+-=--=-n n n n a an n ,n n a a n n 221-=--,1332--=--n n a a n n ,…, 3112=a a 以上1-n 个式子左右分别相乘,得)1(21+=n n a a n ,又211=a ,所以)1(1+=n n a n . 练习2已知数列{}n a 中,211=a ,点)2,(1n n a a n -+在直线y x =上,其中1,2,3....n = (1)令{}11,n n n nb a a b -=--求证数列是等比数列; (2)求数列{}n a . 解:(1)由已知得 111,2,2n n a a a n +==+2213313,11,4424a a a =--=--=-又11,n n n b a a +=-- 1211,n n n b a a +++=-- 11112111(1)111222.1112n n n n n n n n n n n n n n a n a n a a b a a b a a a a a a +++++++++++-----∴====------ {}n b ∴是以34-为首项,以12为公比的等比数列.(2)由(1)知,13131(),4222n n n b -=-⨯=-⨯1311,22n n n a a +∴--=-⨯21311,22a a ∴--=-⨯322311,22a a --=-⨯⋅⋅⋅⋅⋅⋅11311,22n n n a a --∴--=-⨯将以上各式相加得:1213111(1)(),2222n n a a n -∴---=-++⋅⋅⋅+ 11111(1)31313221(1)(1) 2.12222212n n n n a a n n n ---∴=+--⨯=+---=+--32.2n n a n ∴=+- 练习3 甲、乙二人拿出两颗骰子做抛掷游戏,规定如下:若掷出的点数之和为3的倍数时,原来掷骰子的人继续掷;否则就由对方接着掷.第一次由甲开始掷,若第n 次由甲掷的概率为n P ,求n P .解:(递推法)设事件A :“第n 次由甲掷”,事件B :“第1-n 次由甲掷且第n 次继续由甲掷”,事件C :“第1-n 次由乙掷且第n 次由甲掷”.且事件B 、C 互斥.∴--==11313612)(n n P P B P )1(32)1)(36121()(11---=--=n n P P C P 3231)1(3231)()()()(111+-=-+=+=+==∴---n n n n p P P C P B P C B P A P P 3121211-=--∴-n n P P ,且21211=-P ,11)31(2121,)31(2121---⋅+=∴-⋅=-∴n n n n P p . 练习4(2016江苏高考23题) (1)求3467–47C C 的值;(2)设m ,n ∈N *,n ≥m ,求证:(m +1)C m m +(m +2)+1C m m +(m +3)+2C m m +…+n –1C m n +(n +1)C m n =(m +1)+2+2C m n .分析:本小题主要考查组合数及其性质等基础知识,考查运算求解能力和推理论证能力. (1)根据组合数公式求值;(2)设计(1)的目的指向应用组合数性质解决问题,由(1)知递推公式11(1)(1),1,2,,.m m k k k C m C k m m n +++=+=++,而由组合数性质111m m m k k k C C C ++++=得到122112m m m k k k C C C +++++++=,122121(1)(1)(1)()m m m m k k k k k C m C m C C ++++++∴+=+=+-从而利用裂项相消化简求证.解:(1)3467654765474740.3214321C C ⨯⨯⨯⨯⨯-=⨯-⨯=⨯⨯⨯⨯⨯(2)当n m =时,结论显然成立, 当n m >时,11(1)!(1)!(1)(1)(1),1,2,,.!()!(1)![(k 1)(m 1)]!m m k k k k k k C m m C k m m n m k m m +++⋅++==+=+=++-++-+又因为122112,m m m k k k C C C +++++++=所以2221(1)(1)(),k m 1,m+2,n.m m m k k k k C m C C +++++=+-=+,因此12(1)(2)(3)(n 1)m m mmm m m n m C m C m C C +++++++++12(1)[(2)(3)(n 1)]m m mmm m m n m C m C m C C ++=+++++++22222222324321(1)(1)[()()()]m m m m m m m m m m m m n n m C m C C C C C C ++++++++++++++=+++-+-+-22(1)m n m C ++=+.。
递推法
ans A[i]
i 1
东北师大附中
z 1
3 平面分割问题(课后练习)
设有n条封闭曲线画在平面上,而任何两条封闭 曲线恰好相交于两点,且任何三条封闭曲线不相 交于同一点,问这些封闭曲线把平面分割成的区 域个数。
东北师大附中
分析
设an为n条封闭曲线把平面分割成的区域个数。 由图2可 以看出:a2-a1=2;a3-a2=4;a4-a3=6。从这些式子中可 以看出an-an-1=2(n-1)。当然,上面的式子只是我们通过 观察4幅图后得出的结论,它的正确性尚不能保证。下 面不妨让我们来试着证明一下。当平面上已有n-1条曲 线将平面分割成an-1个区域后,第n-1条曲线每与曲线相 交一次,就会增加一个区域,因为平面上已有了n-1条 封闭曲线,且第n条曲线与已有的每一条闭曲线恰好相 交于两点,且不会与任两条曲线交于同一点,故平面上 一共增加2(n-1)个区域,加上已有的an-1个区域,一共 有an-1+2(n-1)个区域。所以本题的递推关系是 an=an-1+2(n-1) 边界条件是a1=1。
东北师大附中
杨辉三角 (课后练习)
东北师大附中
分析
C C
r n r n 1
C n 1
r 1
组合公式的证明:
(n 1)! C n1 r!(n r 1)!
r
r r 1
(n 1) ! C n1 (r 1)!(n r )!
r 1
(n 1) (n r ) (n 1)! r ! n! r Cn C n1 C n1 r!(n r )! r!(n r )!
倒推到第三步
东北师大附中
依次类推,为了在I=k处贮藏k*500公升汽油,卡车至少从 I=k+1处开k趟满载车至I=k处,即 oil[k+1]=(k+1)*500=oil[k]+500,加上从I=k返回I=k+1 的k-1趟返程空间,合计2k-1次。这2k-1次总耗油量按最 省要求为500公升,即d[k+1]=500/(2k-1),图22倒推到第 n步 Way[k+1]=Way[k]+d[k+1]=Way[k]+500/(2k-1);
递推法解决问题
递推方法进行解决问题
类型一:递推解决爬楼梯的方法
第一题:
有10级台阶,每次可以爬1级或2级台阶,那么爬上10级台阶的方法有多少种?
解:
1级:有1种;
2级:有两种,分别为1+1、2;
3级:有三种,分别为1+1+1、1+2、2+1。
因为可以基于第1级、第2级台阶到第3级台阶上,到达第1级有1种,达到第2级有2种,即1+2=3种
4级:有5种,可以通过第2级、第3级到达第4级,到第2级有2种,第3级有3种,即2+3=5种。
5级:基于第3级、第4级到达,3+5=8种。
6级:基于第4级,第5级到达,5+8=13种
7级:基于第5级、第6级到达,8+13=21种
8级:13+21=34种
9级:21+34=55种
10级:34+55=89种
类型二:递推方法解决直线分割平面部分的问题
第二题:
有10条直线可以把同一个平面最多分成多少个部分?
解:
由以上表格可以得出,1+1+2+3+4+5+6+7+8+9+10=56个部分。
得到公式为:1+1+2+3+····+n(n代表一共有多少条直线)
第三题:
20条直线最多可以将同一个平面分成多少个部分?
解:1+1+2+3+4+5+6+7+8+···+20=211个部分。
练习题:
第一题:小明爬楼梯,每步爬1级或2级,则爬上15级台阶有多少种方法?第二题:50条直线最多将同一个平面分割成多少部分?。
递推法:根据数列的前几项,通过递推关系式求得通项。
递推法:根据数列的前几项,通过递推关系式求得通项。
递推法:根据数列的前几项,通过递推关系式求得通项引言递推法是一种用来求解数列通项的方法,它基于数列的前几项,通过递推关系式逐步推导出通项的表达式。
递推法广泛应用于数学、计算机科学和物理等领域,能够高效地解决许多问题。
基本原理递推法的基本原理是通过观察数列的前几项之间的关系,找出一个递推公式或递推关系式,然后利用这个关系式递推出后续项的值,最终得到数列的通项表达式。
步骤使用递推法求解数列通项的步骤如下:1. 观察数列的前几项,尝试找出数列之间的规律和关系。
2. 推导递推关系式,即根据前几项之间的关系,找出一个公式或方程式来表示后续项和前几项之间的关系。
3. 使用递推关系式逐步计算后续项的值,直到得到通项表达式。
示例我们通过一个具体的例子来说明递推法的应用。
假设我们有一个数列:1, 3, 5, 7, 9, ...通过观察前几项,我们可以发现这个数列每一项都比前一项大2。
因此,我们可以推导出递推关系式:a<sub>n</sub> = a<sub>n-1</sub> + 2。
根据这个递推关系式,我们可以计算后续项的值:a<sub>1</sub> = 1a<sub>2</sub> = a<sub>1</sub> + 2 = 3a<sub>3</sub> = a<sub>2</sub> + 2 = 5a<sub>4</sub> = a<sub>3</sub> + 2 = 7a<sub>5</sub> = a<sub>4</sub> + 2 = 9...通过递推关系式,我们可以得到通项表达式:a<sub>n</sub> = 2n - 1。
递推法(迭代法)求数列通项
{an}满足
an13an2 3"
1,a1
3,求数列{an}的通项公式.
解:由已知,得
(两边除以
外),得影
an
3n
1
3n 1,
an
3n
1
3n 1,
an
故an(孑
an1
an1
an 2
13n
2)L
(I
(I
3n)
(I
an
练习:
2(n
3
1)
2(n 1)
3
已知数列
解:由已知,得
1
3n
(1
3n 1)
anan
1L
a2
an 1an
2
a1
(构造法)
:由an1
n
得-
an
n 1
i
n
法
法
法三
□l
n 1
丄,所以
2
an
,从而an
n+1 an 1
一1,故nan
nan
是常数列,nan1 a11,
点拨:解法一是迭代法,这是通法;解法二是叠乘法,适合由条件
an
an 1
f n求通项的题型;
法三是构造法(简单
+经典),
根据条件特点构造特殊数列求通项,技巧性较强,体现了转化思想
an中,
ai
anan 1
2n
3
1
亍,即an
3n
a1
1an
求通项公式
an.(尝试叠加法)
an 2
n n-1
2小
n n+2
2
例1、设数列
项公式•
计数之递推法
7-6-4计数之递推法教学目标前面在讲加法原理、乘法原理、排列组合时已经穿插讲解了计数中的一些常用的方法,比如枚举法、树形图法、标数法、捆绑法、排除法、插板法等等,这里再集中学习一下计数中其他常见的方法,主要有归纳法、整体法、对应法、递推法.对这些计数方法与技巧要做到灵活运用.例题精讲对于某些难以发现其一般情形的计数问题,可以找出其相邻数之间的递归关系,有了这一递归关系就可以利用前面的数求出后面未知的数,这种方法称为递推法.【例1】每对小兔子在出生后一个月就长成大兔子,而每对大兔子每个月能生出一对小兔子来.如果一个人在一月份买了一对小兔子,那么十二月份的时候他共有多少对兔子?【例2】树木生长的过程中,新生的枝条往往需要一段“休息”时间供自身生长,而后才能萌发新枝.一棵树苗在一年后长出一条新枝,第二年新枝“休息”,老枝依旧萌发新枝;此后,老枝与“休息”过一年的枝同时萌发,当年生的新枝则依次“休息”.这在生物学上称为“鲁德维格定律”.那么十年后这棵树上有多少条树枝?【例3】一楼梯共10级,规定每步只能跨上一级或两级,要登上第10级,共有多少种不同走法?【巩固】一楼梯共10级,规定每步只能跨上一级或三级,要登上第10级,共有多少种不同走法?【例4】1×2的小长方形(横的竖的都行)覆盖2×10的方格网,共有多少种不同的盖法.【例5】用13⨯的方格网,共有多少种不同的盖法?⨯的小长方形覆盖38【例6】有一堆火柴共12根,如果规定每次取1~3根,那么取完这堆火柴共有多少种不同取法?【巩固】一堆苹果共有8个,如果规定每次取1~3个,那么取完这堆苹果共有多少种不同取法?【例7】有10枚棋子,每次拿出2枚或3枚,要想将10枚棋子全部拿完,共有多少种不同的拿法?【例8】如下图,一只蜜蜂从A处出发,回到家里B处,每次只能从一个蜂房爬向右侧邻近的蜂房而不准逆行,共有多少种回家的方法?AB【巩固】小蜜蜂通过蜂巢房间,规定只能由小号房间进入大号房间问小蜜蜂由A房间到达B房间有多少种方法?【例9】如下图,一只蜜蜂从A处出发,回到家里B处,每次只能从一个蜂房爬向右侧邻近的蜂房而不准逆行,共有多少种回家的方法?【例10】对一个自然数作如下操作:如果是偶数则除以2,如果是奇数则加1,如此进行直到得数为1操作停止.问经过9次操作变为1的数有多少个?【例11】有20个石子,一个人分若干次取,每次可以取1个,2个或3个,但是每次取完之后不能留下质数个,有多少种方法取完石子?(石子之间不作区分,只考虑石子个数)【巩固】有20个相同的棋子,一个人分若干次取,每次可取1个,2个,3个或4个,但要求每次取之后留下的棋子数不是3或4的倍数,有种不同的方法取完这堆棋子.【例12】4个人进行篮球训练,互相传球接球,要求每个人接球后马上传给别人,开始由甲发球,并作为第一次传球,第五次传球后,球又回到甲手中,问有多少种传球方法?【巩固】五个人互相传球,由甲开始发球,并作为第一次传球,经过4次传球后,球仍回到甲手中.问:共有多少种传球方式?【例13】设A、E为正八边形ABCDEFGH的相对顶点,顶点A处有一只青蛙,除顶点E外青蛙可以从正八边形的任一顶点跳到其相邻两个顶点中任意一个,落到顶点E时青蛙就停止跳动,则青蛙从顶点A出发恰好跳10次后落到E的方法总数为种.【巩固】在正五边形ABCDE上,一只青蛙从A点开始跳动,它每次可以随意跳到相邻两个顶点中的一个上,一旦跳到D点上就停止跳动.青蛙在6次之内(含6次)跳到D点有种不同跳法.【例14】有6个木箱,编号为1,2,3,……,6,每个箱子有一把钥匙,6把钥匙各不相同,每个箱子放进一把钥匙锁好.先挖开1,2号箱子,可以取出钥匙去开箱子上的锁,如果最终能把6把锁都打开,则说这是一种放钥匙的“好”的方法,那么“好”的方法共有种.【巩固】有10个木箱,编号为1,2,3,……,10,每个箱子有一把钥匙,10把钥匙各不相同,每个箱子放进一把钥匙锁好.先挖开1,2号箱子,可以取出钥匙去开箱子上的锁,如果最终能把10把锁都打开,则说这是一种放钥匙的“好”的方法,那么“好”的方法共有种.。
递推法的一般步骤
递推法的一般步骤
递推法的一般步骤如下:
1.明确问题的递推关系:这是递推算法的核心。
需要通过观察问题的特点,找到问题的递推关系。
这个递推关系可以是一个公式、一个递归函数或者一系列等差、等比数列等。
2.确定初始条件:递推算法是从已知条件推导出未知结果的过程,因此需要确定问题的初始条件。
3.建立递推关系式:除了初始条件外,其它各个状态都可以用固定的递推关系式来表示。
实际解题中,题目不会直接给出递推关系式,而是需要通过分析各种状态,找出递推关系式。
4.递推求解:利用已知的初始条件和递推关系式,逐步推出要解决的问题。
请注意,以上步骤可能需要根据具体问题进行调整,并非所有问题都适用同一种递推方式。
一、递推的方法
一、递推的方法在不少计数问题中,要很快求出结果是比较困难的,有时可先从简单情况入手,然后从某一种特殊情况逐渐推出与以后比较复杂情况之间的关系,找出规律逐步解决问题,这样的方法叫递推方法。
例2 计算13+23+33+43+53+63+73+83+93+103的值。
这道题我们可以采用分别求出每个数的立方是多少,再求和的方法来解答。
但是,这样计算的工作量比较大,我们可以从简单的情况开始研究。
13+23=9=32=(1+2)213+23+33=36=62=(1+2+3)213+23+33+43=100=102=(1+2+3+4)2……这样我们可以得到:13+23+33+43+53+63+73+83+93+103=(1+2+3+4+5+6+7+8+9+10)2=552=3025所以 13+23+33+……+n3=(1+2+3+……+n)2例3 2000个学生排成一行,依次从左到右编上1~2000号,然后从左到右按一、二报数,报一的离开队伍,剩下的人继续按一、二报数,报一的离开队伍,……按这个规律如此下去,直至当队伍只剩下一人为止。
问:这时一共报了多少次?最后留下的这个人原来的号码是多少?难的不会想简单的,数大的不会想数小的。
我们先从这2000名同学中选出20人代替2000人进行分析,试着找出规律,然后再用这个规律来解题。
这20人第一次报数后共留下10人,因为20÷2=10 ,这10人开始时的编号依次是:2、4、6、8、10、12、14、16、18、20,都是2的倍数。
第二次报数后共留下5人,因为10÷2=5 ,这5人开始时的编号依次是: 4、8、12、16、20,都是4的倍数,也就是2×2的倍数。
第三次报数后共留下2人,因为5÷2=2 ……1 ,这2人开始时的编号依次是: 8、16,都是8的倍数,也就是2×2×2的倍数。
第四次报数后共留下1人,因为2÷2=1 ,这1人开始时的编号是:16,都是8的倍数,也就是2×2×2×2的倍数。
逻辑思维(一)——递推法
逻辑概念递推法计算法类比法综合法分析法作图法倒推法排除法假设法第一篇递推法递推法由已知条层层分析,要确认每一步都能准确无误。
在这个过程中,可能会的几个分支,应本着先易后难的原则,先从一个简单的一支入手,逐个分析,直至考虑到所有的情况,找出符合要求的答案。
递推法方法示范:一元钱一瓶汽水,喝完后两个空瓶子可以换一瓶汽水。
问:你有20元钱,最多可以喝到几瓶汽水?解这种题的时候就可以用到“递推法”,也就是自上而下,一步步地推理。
第一步,1元钱一瓶,20元可以买20瓶。
接着,喝完有20个空瓶,可以换10瓶汽水。
喝完还有10个空瓶,可以换5瓶汽水-----如此一步步地推下去,就可以知道结果了。
递推法需要注意的是:在“递推法”中,有时推理可能仅仅只列举了使结论成立的一些必要条件,但结论的成立可能依赖于许多条件,只有所有的必要条件都找到了,才可以构成充分条件推导出推理的结论。
也就是说,有原因才能确定的结果,但只有找到了所有影响某一确定结果的原因,我们才能得出这个确定的结果.而如果我们知道了某一确定结果,必定可以推断它一些原因(必要条件)存在。
猜职业猜职业【【初级初级】】1/2一次聚会上,你遇到了甲、乙和丙3个人,你想知道他们3人分别是干什么的,但3人只提供了以下信息:三人中一位是律师、一位是推销员、一位是医生;丙比医生年龄大,甲和推销员不同岁,推销员比乙年龄小。
根据上述信息可以推出的结论是()A. 甲是律师,乙是推销员,丙是医生B. 甲是推销员,乙是医生,丙是律师C. 甲是医生,乙是律师,丙是推销员D. 甲是医生,乙是推销员,丙是律师猜职业猜职业【【初级初级】】2/2由题干“甲和推销员不同岁,推销员比乙年龄小”,可推知丙为推销员.由“丙比医生年龄大,推销员比乙年龄小”,可知乙为律师,甲为医生,故答案为C .什么关系什么关系【【初级初级】】1/2有A.B.C.D.E 五个亲戚,其中四个人每个人讲了一个真实情况,如下:1. B 是我父亲的兄弟;2. E 是我岳母;3. C 是我女婿的兄弟;4. A 是我兄弟的妻子.上面提到的每个人都是这5个人中的一个,则由此推出( )A. B 和D 是兄弟关系B. A 是B 的妻子C. E 是C 的岳母D. D 是B 的子女什么关系什么关系【【初级初级】】2/2从1,2,3入手:1说明B 是我父亲的兄弟,2说明E 是我的岳母,3说C 是女婿的兄弟.说明B 和C 是兄弟关系,B 是E 的女婿.那么2是B,3是E.4说A 是我兄弟的妻子.B 已经说过话,说明说4的是C,A 是B 的妻子.那么关系很明确了:岳母E 女儿A女婿兄弟C 女婿兄弟的子女D 所以选B四个小帅哥四个小帅哥【【初级初级】】1/2有四个小男孩,在一起互相吹棒:甲: 四个人中,乙最帅乙: 四个人中,丙最帅丙: 我不是最帅的丁: 甲比我帅,丙比甲帅已知,其中只有一个人在说假说.请问:四个人中谁最帅?从最帅到最不帅的顺序怎么排?四个小帅哥四个小帅哥【【初级初级】】2/2甲、乙两人的答案不同,所以一定有一个在说谎.也就是说,丙和丁说的都是实话.所以,丙不是最帅的,也就是说乙说的是假话.这样就可以得到顺序为:乙、丙、甲、丁。
递推法
三、递推法递推法是利用问题本身所具有的一种递推关系求问题解的一种方法。
设要求问题规模为N的解,当N=1时,解或为已知,或能非常方便地得到解。
能采用递推法构造算法的问题有重要的递推性质,即当得到问题规模为i-1的解后,由问题的递推性质,能从已求得的规模为1,2,…,i-1的一系列解,构造出问题规模为I的解。
这样,程序可从i=0或i=1出发,重复地,由已知至i-1规模的解,通过递推,获得规模为i的解,直至得到规模为N的解。
【问题】阶乘计算问题描述:编写程序,对给定的n(n≦100),计算并输出k的阶乘k!(k=1,2,…,n)的全部有效数字。
由于要求的整数可能大大超出一般整数的位数,程序用一维数组存储长整数,存储长整数数组的每个元素只存储长整数的一位数字。
如有m位成整数N用数组a[ ]存储:N=a[m]×10m-1+a[m-1]×10m-2+ …+a[2]×101+a[1]×100并用a[0]存储长整数N的位数m,即a[0]=m。
按上述约定,数组的每个元素存储k 的阶乘k!的一位数字,并从低位到高位依次存于数组的第二个元素、第三个元素……。
例如,5!=120,在数组中的存储形式为:3 0 2 1 ……首元素3表示长整数是一个3位数,接着是低位到高位依次是0、2、1,表示成整数120。
计算阶乘k!可采用对已求得的阶乘(k-1)!连续累加k-1次后求得。
例如,已知4!=24,计算5!,可对原来的24累加4次24后得到120。
细节见以下程序。
# include# include# define MAXN 1000void pnext(int a[ ],int k){ int *b,m=a[0],i,j,r,carry;b=(int * ) malloc(sizeof(int)* (m+1));for ( i=1;i<=m;i++) b[i]=a[i];for ( j=1;j<=k;j++){ for ( carry=0,i=1;i<=m;i++){ r=(i a[i]=r%10;carry=r/10;}if (carry) a[++m]=carry;}free(b);a[0]=m;}void write(int *a,int k){ int i;printf(“%4d!=”,k);for (i=a[0];i>0;i--)printf(“%d”,a[i]);printf(“\n\n”);}void main(){ int a[MAXN],n,k;printf(“Enter the number n: “); scanf(“%d”,&n);a[0]=1;a[1]=1;write(a,1);for (k=2;k<=n;k++){ pnext(a,k);write(a,k);getchar();}}。
小学奥数计数之递推法(完整版)
小学奥数计数之递推法7-6-4.计数之递推法教学目标前面在讲加法原理、乘法原理、排列组合时已经穿插讲解了计数中的一些常用的方法,比如枚举法、树形图法、标数法、捆绑法、排除法、插板法等等,这里再集中学习一下计数中其他常见的方法,主要有归纳法、整体法、对应法、递推法.对这些计数方法与技巧要做到灵活运用.例题精讲对于某些难以发现其一般情形的计数问题,可以找出其相邻数之间的递归关系,有了这一递归关系就可以利用前面的数求出后面未知的数,这种方法称为递推法.【例 1】每对小兔子在出生后一个月就长成大兔子,而每对大兔子每个月能生出一对小兔子来.如果一个人在一月份买了一对小兔子,那么十二月份的时候他共有多少对兔子?【考点】计数之递推法【难度】3星【题型】解答【解析】第一个月,有1对小兔子;第二个月,长成大兔子,所以还是1对;第三个月,大兔子生下一对小兔子,所以共有2对;第四个月,刚生下的小兔子长成大兔子,而原来的大兔子又生下一对小兔子,共有3对;第五个月,两对大兔子生下2对小兔子,共有5对;……这个特点的说明每月的大兔子数为上月的兔子数,每月的小兔子数为上月的大兔子数,即上上月的兔子数,所以每月的兔子数为上月的兔子数与上上月的兔子数相加.依次类推可以列出下表:经过月数:---1---2---3---4---5---6---7---8---9---10---11---12兔子对数:---1---1---2---3---5---8--13--21--34--55--89—144,所以十二月份的时候总共有144对兔子.【答案】144【例 2】树木生长的过程中,新生的枝条往往需要一段“休息”时间供自身生长,而后才能萌发新枝.一棵树苗在一年后长出一条新枝,第二年新枝“休息”,老枝依旧萌发新枝;此后,老枝与“休息”过一年的枝同时萌发,当年生的新枝则依次“休息”.这在生物学上称为“鲁德维格定律”.那么十年后这棵树上有多少条树枝?【考点】计数之递推法【难度】3星【题型】解答【解析】一株树木各个年份的枝桠数,构成斐波那契数列:1,2,3,5,8,13,21,34,55,89,……所以十年后树上有89条树枝.【答案】89【例 3】一楼梯共10级,规定每步只能跨上一级或两级,要登上第10级,共有多少种不同走法?【考点】计数之递推法【难度】4星【题型】解答【解析】 登 1级 2级 3级 4级 ...... 10级1种方法 2种 3种 5种 ...... ?我们观察每级的种数,发现这么一个规律:从第三个数开始,每个数是前面两个数的和;依此规律我们就可以知道了第10级的种数是89.其实这也是加法的运用:假如我们把这个人开始登楼梯的位置看做A 0,那么登了1级的位置是在A 1,2级在A 2... A 10级就在A 10.到A 3的前一步有两个位置;分别是A 2 和A 1 .在这里要强调一点,那么A 2 到A 3 既然是一步到了,那么A 2 、A 3之间就是一种选择了;同理A 1 到A 3 也是一种选择了.同时我们假设到n 级的选择数就是An .那么从A 0 到A 3 就可以分成两类了:第一类:A 0 ---- A 1 ------ A 3 ,那么就可以分成两步.有A 1×1种,也就是A 1 种;(A 1 ------ A 3 是一种选择)第二类:A 0 ---- A 2 ------ A 3, 同样道理 有A 2 .类类相加原理:A 3 = A 1 +A 2,依次类推An = An -1 + An -2.【答案】89【巩固】一楼梯共10级,规定每步只能跨上一级或三级,要登上第10级,共有多少种不同走法?【考点】计数之递推法 【难度】4星 【题型】解答【解析】 登 1级 2级 3级 4级 5级 ...... 10级1种方法 1种 2种 3种 4种...... ?我们观察每级的种数,发现这么一个规律:从第三个数开始,每个数是前面相隔的两个数的和;依此规律我们就可以知道了第10级的种数是28.【答案】28【例 4】 1×2的小长方形(横的竖的都行)覆盖2×10的方格网,共有多少种不同的盖法.【考点】计数之递推法 【难度】4星 【题型】解答【解析】 如果用12⨯的长方形盖2n ⨯的长方形,设种数为n a ,则11a =,22a =,对于3n ≥,左边可能竖放1个12⨯的,也可能横放2个12⨯的,前者有-1n a 种,后者有-2n a 种,所以-1-2n n n a a a =+,所以根据递推,覆盖210⨯的长方形一共有89种.【答案】89【例 5】 用13⨯的小长方形覆盖38⨯的方格网,共有多少种不同的盖法?【考点】计数之递推法 【难度】5星 【题型】解答【解析】 如果用13⨯的长方形盖3n ⨯的长方形,设种数为n a ,则11a =,21a = ,32a = ,对于4n ≥,左边可能竖放1个13⨯的,也可能横放3个13⨯的,前者有-1n a 种,后者有-3n a 种,所以-1-3n n n a a a =+,依照这条递推公式列表:31⨯ 32⨯ 33⨯ 34⨯ 35⨯ 36⨯ 37⨯ 38⨯1 1234 6 9 13所以用13⨯的小长方形形覆盖38⨯的方格网,共有13种不同的盖法.【答案】13【例 6】 有一堆火柴共12根,如果规定每次取1~3根,那么取完这堆火柴共有多少种不同取法?【考点】计数之递推法 【难度】4星 【题型】解答【解析】 取1根火柴有1种方法,取2根火柴有2种方法,取3根火柴有4种取法,以后取任意根火柴的种数等于取到前三根火柴所有情况之和,以此类推,参照上题列表如下: 1根 2根 3根 4根 5根 6根 7根 8根 9根 10根 11根 12根1 2 4 7 13 24 44 81 149 274 504 927取完这堆火柴一共有927种方法.【答案】927【巩固】 一堆苹果共有8个,如果规定每次取1~3个,那么取完这堆苹果共有多少种不同取法?【考点】计数之递推法 【难度】4星 【题型】解答【解析】 取1个苹果有1种方法,取2个苹果有2种方法,取3个苹果有4种取法,以后取任意个苹果的种数等于取到前三个苹果所有情况之和,以此类推,参照上题列表如下:1个 2个 3个 4个 5个 6个 7个 8个1 2 4 7 13 24 44 81取完这堆苹果一共有81种方法.【答案】81【例 7】 有10枚棋子,每次拿出2枚或3枚,要想将10枚棋子全部拿完,共有多少种不同的拿法?【考点】计数之递推法 【难度】4星 【题型】解答【解析】 本题可以采用递推法,也可以进行分类讨论,当然也可以直接进行枚举.(法1)递推法.假设有n 枚棋子,每次拿出2枚或3枚,将n 枚棋子全部拿完的拿法总数为n a 种.则21a =,31a =,41a =.由于每次拿出2枚或3枚,所以32n n n a a a --=+(5n ≥).所以,5232a a a =+=;6342a a a =+=;7453a a a =+=;8564a a a =+=;9675a a a =+=;10787a a a =+=.即当有10枚棋子时,共有7种不同的拿法.(法2)分类讨论.由于棋子总数为10枚,是个偶数,而每次拿2枚或3枚,所以其中拿3枚的次数也应该是偶数.由于拿3枚的次数不超过3次,所以只能为0次或2次.若为0次,则相当于2枚拿了5次,此时有1种拿法;若为2次,则2枚也拿了2次,共拿了4次,所以此时有246C =种拿法.根据加法原理,共有167+=种不同的拿法.【答案】7【例 8】 如下图,一只蜜蜂从A 处出发,回到家里B 处,每次只能从一个蜂房爬向右侧邻近的蜂房而不准逆行,共有多少种回家的方法?【考点】计数之递推法 【难度】4星 【题型】解答【解析】 蜜蜂“每次只能从一个蜂房爬向右侧邻近的蜂房而不准逆行”这意味着它只能从小号码的蜂房爬近相邻大号码的蜂房.明确了行走路径的方向,就可以运用标数法进行计算.如右图所示,小蜜蜂从A 出发到B 处共有89种不同的回家方法.【答案】89【巩固】小蜜蜂通过蜂巢房间,规定只能由小号房间进入大号房间问小蜜蜂由A 房间到达B房间有多少种方法?【考点】计数之递推法 【难度】4星 【题型】解答【解析】 斐波那契数列第八项.21种.【答案】21【例 9】 如下图,一只蜜蜂从A 处出发,回到家里B 处,每次只能从一个蜂房爬向右侧邻近的蜂房而不准逆行,共有多少种回家的方法? 【考点】计数之递推法 【难度】4星 【题型】解答 【解析】 按照蜜蜂只能从小号码的蜂房爬近相邻大号码的蜂房的原则,运用标号法进行计算.如右图所示,小蜜蜂从A 出发到B 处共有296种不同的回家方法.【答案】296【例 10】 对一个自然数作如下操作:如果是偶数则除以2,如果是奇数则加1,如此进行直到得数为1操作停止.问经过9次操作变为1的数有多少个?【考点】计数之递推法 【难度】4星 【题型】解答【解析】 可以先尝试一下,倒推得出下面的图:BA AB 135794682123581321345589186427531BA其中经1次操作变为1的1个,即2,经2次操作变为1的1个,即4,经3次操作变为1的2个,是一奇一偶,以后发现,每个偶数可以变成两个数,分别是一奇一偶,每个奇数变为一个偶数,于是,经1、2、…次操作变为1的数的个数依次为:1,1,2,3,5,8,…这一串数中有个特点:自第三个开始,每一个等于前两个的和,即即经过9次操作变为1的数有34个.为什么上面的规律是正确的呢?道理也很简单. 设经过n 次操作变为1的数的个数为n a ,则1a =1,2a =1,3a =2,… 从上面的图看出,1n a +比n a 大.一方面,每个经过n 次操作变为1的数,乘以2,就得出一个偶数,经过1n +次操作变为1;反过来,每个经过1n +次操作变为1的偶数,除以2,就得出一个经过n 次操作变为1的数. 所以经过n 次操作变为1的数与经过1n +次操作变为1的偶数恰好一样多.前者的个数是n a ,因此后者也是n a 个.另一方面,每个经过n 次操作变为1的偶数,减去1,就得出一个奇数,它经过1n +次操作变为1,反过来.每个经过1n +次操作变为1的奇数,加上1,就得出一个偶数,它经过n 次操作变为1. 所以经过n 次操作变为1的偶数经过1n +次操作变为1的奇数恰好一样多.而由上面所说,前者的个数就是1n a -,因此后者也是1n a -.经过n +1次操作变为1的数,分为偶数、奇数两类,所以11n n n a a a +-=+,即上面所说的规律的确成立.【答案】34【例 11】 有20个石子,一个人分若干次取,每次可以取1个,2个或3个,但是每次取完之后不能留下质数个,有多少种方法取完石子?(石子之间不作区分,只考虑石子个数)【考点】计数之递推法 【难度】5星 【题型】解答【解析】 如果没有剩下的不能使质数这个条件,那么递推方法与前面学过的递推法相似,只不过每次都是前面3个数相加.现在剩下的不能是质数个,可以看作是质数个的取法总数都是0,然后再进行递推.【答案】25【巩固】有20个相同的棋子,一个人分若干次取,每次可取1个,2个,3个或4个,但要2410131112514302831643215167683421求每次取之后留下的棋子数不是3或4的倍数,有 种不同的方法取完这堆棋子.【考点】计数之递推法 【难度】5星 【题型】填空【解析】 把20、0和20以内不是3或4的倍数的数写成一串,用递推法把所有的方法数写出来:【答案】54【例 12】 4个人进行篮球训练,互相传球接球,要求每个人接球后马上传给别人,开始由甲发球,并作为第一次传球,第五次传球后,球又回到甲手中,问有多少种传球方法?【考点】计数之递推法 【难度】5星 【题型】解答【解析】 设第n 次传球后,球又回到甲手中的传球方法有n a 种.可以想象前1n -次传球,如果每一次传球都任选其他三人中的一人进行传球,即每次传球都有3种可能,由乘法原理,共有11333333n n --⨯⨯⨯=()个…(种)传球方法.这些传球方法并不是都符合要求的,它们可以分为两类,一类是第1n -次恰好传到甲手中,这有1n a -种传法,它们不符合要求,因为这样第n 次无法再把球传给甲;另一类是第1n -次传球,球不在甲手中,第n 次持球人再将球传给甲,有n a 种传法.根据加法原理,有11133333n n n n a a ---+=⨯⨯⨯=(个…).由于甲是发球者,一次传球后球又回到甲手中的传球方法是不存在的,所以10a =. 利用递推关系可以得到:2303a =-=,33336a =⨯-=,4333621a =⨯⨯-=,533332160a =⨯⨯⨯-=.这说明经过5次传球后,球仍回到甲手中的传球方法有60种.本题也可以列表求解.由于第n 次传球后,球不在甲手中的传球方法,第1n +次传球后球就可能回到甲手中,所以只需求出第四次传球后,球不在甲手中的传法共有多少种.从表中可以看出经过五次传球后,球仍回到甲手中的传球方法共有60种.【答案】60【巩固】五个人互相传球,由甲开始发球,并作为第一次传球,经过4次传球后,球仍回到甲手中.问:共有多少种传球方式?【考点】计数之递推法 【难度】5星 【题型】解答【解析】 递推法.设第n 次传球后球传到甲的手中的方法有n a 种.由于每次传球有4种选择,传n 次有4n 次可能.其中有的球在甲的手中,有的球不在甲的手中,球在甲的手中的有n a 种,球不在甲的手中的,下一次传球都可以将球传到甲的手中,故有1n a +种.所以14n n n a a ++=.由于10a =,所以12144a a =-=,232412a a =-=,343452a a =-=.即经过4次传球后,球仍回到甲手中的传球方法有52种.【答案】52【例 13】 设A 、E 为正八边形ABCDEFGH 的相对顶点,顶点A 处有一只青蛙,除顶点E外青蛙可以从正八边形的任一顶点跳到其相邻两个顶点中任意一个,落到顶点E 时青蛙就停止跳动,则青蛙从顶点A 出发恰好跳10次后落到E 的方法总数为 种.【考点】计数之递推法 【难度】5星 【题型】填空【关键词】清华附中【解析】 可以使用递推法.回到A 跳到B 或H 跳到C 或G 跳到D 或F 停在E1步 12步 2 13步 3 14步 6 4 25步 10 46步 20 14 87步 34 148步 68 48 289步 116 48其中,第一列的每一个数都等于它的上一行的第二列的数的2倍,第二列的每一个数都等于它的上一行的第一列和第三列的两个数的和,第三列的每一个数都等于它的上一行的第二列和第四列的两个数的和,第四列的每一个数都等于它的上一行的第三列的数,第五列的每一个数都等于都等于它的上一行的第四列的数的2倍.这一规律很容易根据青蛙的跳动规则分析得来.所以,青蛙第10步跳到E 有48296⨯=种方法.【答案】96【巩固】在正五边形ABCDE 上,一只青蛙从A 点开始跳动,它每次可以随意跳到相邻两个顶点中的一个上,一旦跳到D 点上就停止跳动.青蛙在6次之内(含6次)跳到D 点有 种不同跳法.【考点】计数之递推法 【难度】5星 【题型】填空【解析】 采用递推的方法.列表如下:跳到A 跳到B 跳到C 停在D 跳到E1步 1 12步 2 1 13步 3 1 24步 5 3 25步 8 3 56步 13 8 5其中,根据规则,每次可以随意跳到相邻两个顶点中的一个上,一旦跳到D 点上就停止跳动.所以,每一步跳到A 的跳法数等于上一步跳到B 和E 的跳法数之和,每一步跳到B 的跳法数等于上一步跳到A 和C 的跳法数之和,每一步跳到C 的跳法数等于上一步跳到B 的跳法数,每一步跳到E 的跳法数等于上一步跳到A 的跳法数,AB C DE每一步跳到D 的跳法数等于上一步跳到C 或跳到E 的跳法数.观察可知,上面的递推结果与前面的枚举也相吻合,所以青蛙在6次之内(含6次)跳到D 点共有1123512++++=种不同的跳法.【答案】12【例 14】 有6个木箱,编号为1,2,3,……,6,每个箱子有一把钥匙,6把钥匙各不相同,每个箱子放进一把钥匙锁好.先挖开1,2号箱子,可以取出钥匙去开箱子上的锁,如果最终能把6把锁都打开,则说这是一种放钥匙的“好”的方法,那么“好”的方法共有 种.【考点】计数之递推法 【难度】5星 【题型】填空【关键词】迎春杯,中年级组,决赛【解析】 (法1)分类讨论.如果1,2号箱中恰好放的就是1,2号箱的钥匙,显然不是“好”的方法,所以“好”的方法有两种情况:⑴1,2号箱的钥匙恰有1把在1,2号箱中,另一箱装的是3~6箱的钥匙.⑴1,2号箱的钥匙都不在1,2号箱中.对于⑴,从1,2号箱的钥匙中选1把,从3~6号箱的钥匙中选1把,共有248⨯=(种)选法,每一种选法放入1,2号箱各有2种放法,共有8216⨯=(种)放法.不妨设1,3号箱的钥匙放入了1,2号箱,此时3号箱不能装2号箱的钥匙,有3种选法,依次类推,可知此时不同的放法有3216⨯⨯=(种).所以,第⑴种情况有“好”的方法16696⨯=(种).对于⑴,从3~6号箱的钥匙中选2把放入1,2号箱,有4312⨯=(种)放法.不妨设3,4号箱的钥匙放入了1,2号箱.此时1,2号箱的钥匙不可能都放在3,4号箱中,也就是说3,4号箱中至少有1把5,6号箱的钥匙.如果3,4号箱中有2把5,6号箱的钥匙,也就是说3,4号箱中放的恰好是5,6号箱的钥匙,那么1,2号箱的钥匙放在5,6号箱中,有224⨯=种放法;如果3,4号箱中有1把5,6号箱的钥匙,比如3,4号箱中放的是5,1号箱的钥匙,则只能是5号箱放6号箱的钥匙,6号箱放2号箱的钥匙,有212⨯=种放法; 同理,3,4号箱放5,2号箱或6,1号箱或6,2号箱的钥匙,也各有2种放法. 所以,第⑴种情况有“好”的放法()1242222144⨯++++=(种).所以“好”的方法共有96144240+=(种).(法2)递推法.设第1,2,3,…,6号箱子中所放的钥匙号码依次为1k ,2k ,3k ,…,6k .当箱子数为n (2n ≥)时,好的放法的总数为n a .当2n =时,显然22a =(11k =,22k =或12k =,21k =).当3n =时,显然33k ≠,否则第3个箱子打不开,从而13k =或23k =,如果13k =,则把1号箱子和3号箱子看作一个整体,这样还是锁着1,2两号钥匙,撬开1,2两号箱子,那么方法有2a 种;当23k =也是如此.于是2n =时的每一种情况对应13k =或23k =时的一种情况,这样就有3224a a ==.当4n ≥时,也一定有n k n ≠,否则第n 个箱子打不开,从而1k 、2k 、……、1n k -中有一个为n ,不论其中哪一个是n ,由于必须要把该箱子打开才能打开n 号箱子,所以可以将锁着这把钥匙的箱子与第n 号箱子看作1个箱子,于是还是锁着1k 、2k 、……、1n k -这()1n -把钥匙,需要撬开1,2两号箱子,所以每种情况都有1n a -种.所以()11n n a n a -=-.所以,6542554543225!240a a a a ==⨯==⨯⨯⨯=⨯=,即好的方法总数为240种.【答案】240【巩固】有10个木箱,编号为1,2,3,……,10,每个箱子有一把钥匙,10把钥匙各不相同,每个箱子放进一把钥匙锁好.先挖开1,2号箱子,可以取出钥匙去开箱子上的锁,如果最终能把10把锁都打开,则说这是一种放钥匙的“好”的方法,那么“好”的方法共有 种.【考点】计数之递推法 【难度】5星 【题型】填空【解析】 递推法.设第1,2,3,…,6号箱子中所放的钥匙号码依次为1k ,2k ,3k ,…,6k .当箱子数为n (2n ≥)时,好的放法的总数为n a .当2n =时,显然22a =(11k =,22k =或12k =,21k =).当3n =时,显然33k ≠,否则第3个箱子打不开,从而13k =或23k =,如果13k =,则把1号箱子和3号箱子看作一个整体,这样还是锁着1,2两号钥匙,撬开1,2两号箱子,那么方法有2a 种;当23k =也是如此.于是2n =时的每一种情况对应13k =或23k =时的一种情况,这样就有3224a a ==.当4n ≥时,也一定有n k n ≠,否则第n 个箱子打不开,从而1k 、2k 、……、1n k -中有一个为n ,不论其中哪一个是n ,由于必须要把该箱子打开才能打开n 号箱子,所以可以将锁着这把钥匙的箱子与第n 号箱子看作1个箱子,于是还是锁着1k 、2k 、……、1n k -这()1n -把钥匙,需要撬开1,2两号箱子,所以每种情况都有1n a -种.所以()11n n a n a -=-.所以,109829989876543229!=725760a a a a ==⨯==⨯⨯⨯⨯⨯⨯⨯=⨯,即好的方法总数为725760种.【答案】725760。
递推法解题
递推法解题基础知识对于某些与自然数有关的问题,我们有时可以用递推法解决,扎谓用递推法解题,就是根据题目的特点,构造出递推关系解题的一种方法,解决问题的关键在于构造递推关系。
递推关系一般可以用归纳、猜想等途径获得。
利用递推法解题的一般步骤为:(1)确定初始值;(2)建立递推关系;(3)利用递推关系求通项。
递推方法是人们从开始认识数量关系时就很自然地产生的一种推理思想.例如自然数中最小的数是1,比1大1的数是2,接下来比2大1的数是3,…由此得到了自然数数列:1,2,3,4,5,….在这里实际上就有了一个递推公式,假设第n个数为a n,则a n+1=a n+1;即由自然数中第n个数加上1,就是第n+1个数。
由此可得a n+2=a n+1+1,这样就可以得到自然数数列中任何一个数.再看一个例子:平面上5条直线最多能把圆的内部分成几部分?平面上100条直线最多能把圆的内部分成几部分?解:假设用a k表示k条直线最多能把圆的内部分成的部分数.这里k=0,1,2,….a0=1a1=a0+1=2a2=a1+2=4a3=a2+3=7a4=a3+4=11…归纳出递推公式a n+1=a n+n. (1)即画第n+1条直线时,最多增加n部分.原因是这样的:第一条直线最多把圆分成两部分,故a1=2.当画第二条直线时要想把圆内部分割的部分尽可能多,就应和第一条直线在圆内相交,交点把第二条直线在圆内部分分成两条线段,而每条线段又把原来的一个区域划分成两个区域,因而增加的区域数是2,正好等于第二条直线的序号.同理,当画第三条直线时,要想把圆内部分割的部分数尽可能多,它就应和前两条直线在圆内各有一个交点.两个交点把第三条线在圆内部分成三条线段.而每条线段又把原来一个区域划分成两个区域.因而增加的区域部分数是3,正好等于第三条直线的序号,….这个道理适用于任意多条直线的情形.所以递推公式(1)是正确的.这样就易求得5条直线最多把圆内分成:a5=a4+5=11=5=16(部分)。
递推(二):递推法的应用
递推(⼆):递推法的应⽤下⾯通过⼀些典型实例及其扩展来讨论递推法的应⽤。
【例2】⾻牌铺⽅格在2×n的⼀个长⽅形⽅格中,⽤⼀种2×1的⾻牌铺满⽅格。
输⼊n(n<=40),输出铺放⽅案的总数。
例如n=3时,为2×3⽅格,⾻牌的铺放⽅案有三种,如下图1所⽰。
图1 2×3⽅格的⾻牌铺放⽅案(1)编程思路。
设f[i]为铺满2*n⽅格的⽅案数,则有 f[i]=f[i-1]+f[i-2]。
其中,f[i-1]为铺满2*(n-1)⽅格的⽅案数(既然前⾯的2*(n-1)的⽅格已经铺满,那么最后⼀个只能是竖着放)。
f[i-2]为铺满2*(n-2)⽅格的⽅案数(如果前⾯的2*(n-2)的⽅格已经铺满,那么最后的只能是横着放两块,否则会重复)。
初始情况为:f[1]=1,f[2]=2。
(2)源程序。
#include <iostream>using namespace std;int main(){int i,n,f[41];cin>>n;f[1]=1;f[2]=2;for(i=3;i<=n;i++)f[i]=f[i-1]+f[i-2]; // 按递推关系实施递推cout<<f[n]<<endl;return 0;}(3)问题扩展。
有⼀个⼤⼩是2×n的长⽅形⽅格,现⽤2种规格的⾻牌铺满,⾻牌规格分别是 2×1和2×2。
输⼊n(n<=30),输出铺放⽅案的总数。
(4)扩展问题编程思路。
铺⽅格的⾻牌规格多了⼀种,递推公式做相应变化。
设f[i]为铺满2*n⽅格的⽅案数,则有 f[i]=f[i-1]+2*f[i-2]。
其中,f[i-1]为铺满2*(n-1)⽅格的⽅案数(既然前⾯的2*(n-1)的⽅格已经铺满,那么最后⼀个只能是竖着放)。
f[i-2]为铺满2*(n-2)⽅格的⽅案数(如果前⾯的2*(n-2)的⽅格已经铺满,那么最后的2*2⽅格或者横着放两块2*1的⾻牌,或者放1块2*2的⾻牌)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.编写一个通用的求S=1+3+5+……+(2n-1)-1/2-1/4-……-1/2n的值的程序(其中n为100以内的自然数)。
2.某农场引进一对刚出生的新品种兔子,从出生的第二个月后,每月新生一对兔子,新生的兔子也如此繁殖,如果所有的兔子都不死去,问到第12个月时,该农场共有这种兔子多少对?
一、综合题:
一头母牛每年年初一生一头小母牛,每头小母牛从第四年头起,每年初一生一头小母牛。
若所有母牛,在20年时间内都健在,问第20年时,共有多少头母牛?
2.编过程,求出1到100的自然数之和。
3.编过程,求10以内所有奇数的乘积。
4.编过程,求1×2+2×3+3×4+…+9×10的值。
5.编过程,求1+1/2+1/3+1/4+…+1/100的值。
6.一次考试,共有25个问题,答对一题得4分,答错或不答均扣1分,某同学成绩正好60分,问他答对了多少题。
7.某农场引进一对刚出生的新品种兔子,从出生的第二个月后,每月新生一对兔子,新出生兔子也如此繁殖,如果所有的兔子都不死亡,问到12个月时,该农场共有这种兔子多少对?
8.根据题意填空:
计算:1×1+2×2+3×3+…+20×20+2×4×6×…×20的值。
例3:求1×1+2×2+……+20×20+3×6×9×……×18的值。
方法一:(利用全程变量)
TO A1 :X
IF :X>20 STOP
MAKE "S :S*:X*:X
A1 :X+1
END
TO A2 :X
IF :X>18 STOP
MAKE "S1 :S1*:X
A2 :X+3
END
TO A3
MAKE "S 0
MAKE "S1 1
A1 1 A2 3
(PR :S+:S1)
END
执行A3
显示:527750
2.用循环命令计算1.13+1.23+1.33+……+11.33的程序。
过程名:M8
找出下面数的规律,用程序打印出其前20项:
(1)、1,2,4,7,11,16, ...
(2)、1,2,6,24,120, ...
【程序80】
题目:海滩上有一堆桃子,五只猴子来分。
第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
六、根据所给数列,分析其变化规律,按照题目要求填空:
1、执行EX61 6时,要求能产生数列:
1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8
六、N名小朋友始终围成一圈做游戏,开始时按顺时针方向的顺序从1至N给他们编号。
游戏规则如下(以下报数顺序都按顺时针方向进行):
从编号为M的小朋友开始从1报数,第一次是隔一人出列,即报2的出列;
第二次从出列的下一位小朋友重新从1报数,报3的出列;
如此类推,第I次报I+1的出列,直至最后一个人出列为止。
要求:根据这个游戏规则完善程序,输出先后出列小朋友的编号顺序。
TO A1 :N
MAKE "A [ ]
FOR "I 1 :N[MAKE "A LPUT :I :A]
END
TO A2 :I :L
MAKE "K REMAINDER :K+:I :L
IF :K=0 [ ]
MAKE "S ITEM :K :A
MAKE "A BM
(TYPE :S ")
END
TO A :N :M
A1 :N
MAKE "K :M
FOR "I 1 :N[A2 :I ]
END
对任意给出的一个自然数N,输出N在表格中的行数X,列数Y。
例如:N=12
输出:X=3 Y=2
TO B :N
MAKE “X 1 MAKE “Y 1
IF :N/2= [B1]
B2
(PR “X\=:X “Y\=:Y)
END
TO B1
IF NOT :N/2=INT :N/2 STOP
MAKE “N
MAKE “X
B1
END
TO B2
END
4、一辆特别班车载着若干人从起点出发,每到一站总是有车上实有乘客人
数的一半零一个人下车。
当班车经过五站以后,车上只剩下了两个人。
请你编一个程序,求出开车时共有多少乘客?
五、地球绕太阳一周要用365天,比水星绕太阳一周用的时间的4倍多13天,水星绕
太阳一周要多少天?
六、编写一个程序
试求S=1+2+3+42+52+62+73+83+93+104+114+124+135+145+155之值
编号为1到13的纸牌顺时钟排成一圈,有人从编号为1的牌从数字1开始顺时钟数下去,1、2、3、…、20、21、…,一圈又一圈。
问:当数到数字N时,所在纸牌的编号为
1.一个商场有m种颜色的小球,每种小球足够多,在这m种小球中挑选n个小球的选法有多少种?
如 m=2,n=3 时有4种选法分别是:两种小球的个数分别为03,12,21,30.问:当m=4,n=4时
选法数=__________。
2.在A,B两个城市之间设有N个路站(如下图中的S1,且N<100),城市与路站之间、路站和路站之间各有若干条路段(各路段数≤20,且每条路段上的距离均为一个整数)。
A,B的一条通路是指:从A出发,可经过任一路段到达S1,再从S1出发经过任一路段,…最后到达B。
通路上路段距离之和称为通路距离(最大距离
≤1000)。
当所有的路段距离给出之后,求出所有不同距离的通路个数(相同距离仅记一次)。
例如:下图所示是当N=1时的情况:
从A到B的通路条数为6,但因其中通路5+5=4+6,所以满足条件的不同距离的通路条数为5。
算法说明:本题采用穷举算法。
数据结构:N:记录A,B间路站的个数
数组D[I,0]记录第I-1到第I路站间路段的个数
D[I,1],D[I,2],…记录每个路段距离
数组G记录可取到的距离。