递推2

合集下载

第2讲.归纳与递推.B版

第2讲.归纳与递推.B版
【分析】2 层的塔要挪 3 步,3 层要挪 7 步,4 层要挪 15 步,……,10 层要挪 1023 步,……,n 层要挪 (2n 1) 步.(1)3;7;15;(2)1023;(3) (2n 1) 步 教师可先对汉诺塔问题的传说以及规则进 行简单的介绍: 一位法国数学家曾编写过一个印度的 古老传说:在世界中心贝拿勒斯(在印度北 部)的圣庙里,一块黄铜板上插着三根宝石 针. 印度教的主神梵天在创造世界的时候, 在其中一根针上从下到上地穿好了由大到 小的 64 片金片,这就是所谓的汉诺塔. 不论 白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小 片必须在大片上面. 僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世 界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽. 不管这个传说的可信度有多大, 如果考虑一下把 64 片金片,由一根针上移到另一根针上,并且始终保持上小下大的顺序,这需要
2 3 6 (个)交点.这 6 个交点将第二个三角形的周边分成了 6 段,这 6 段中的每一段都将原来的每
一个部分分成 2 个部分,从而平面也增加了 6 个部分,即 a2 2 2 3 . n 3 时,第三个三角形与前面两个三角形最多有 4 3 12 (个)交点,从而平面也增加了12 个部
(1)用 3 个形如“
”的方格覆盖 2 3 的方格(“
”);有多少种不同的摆法?
(2)用 4 个形如“
”的方格覆盖 2 4 的方格(“
”);有多少种不同的摆法?
(3)用 10 个形如“
”的方格覆盖 2×10 的方格(“
”);有多少种不同
的摆法? 【分析】前两问可通过枚举验证,设 2 n 的棋盘有 an 种摆法(n 为正整数),明显 a1 1, a2 2 , a3 3 ,

高中数学:2.1.2递推公式作业(新人教A版必修5)

高中数学:2.1.2递推公式作业(新人教A版必修5)

2.1.2递推公式作业1、数列 ,9910,638,356,154,32中第8项是 ( )A.19514 B.25516C. 32318 D.399202、已知数列{}n a 满足()nn n n a a a 111-+=--且11=a ,则=35a a ( )A.1516 B.34 C.158 D.383、数列{}n a 中,已知()*1221,2,1N n a a a a a n n n ∈-===++,则=2002a ( ) A. 1 B. 1- C. 2- D. 24、已知()*1133,21N n a a a a n n n ∈+==+,则=na( ) A. 52+n B.42+n C.53+n D. 43+n5、数列{}n a 满足341+=-n n a a 且01=a ,则此数列第5项是 ( ) A. 15 B. 255 C. 16 D. 636、数列{}n a 中,02,311=-=+n n a a a ,数列{}n b 的通项n b 满足关系式 ()()*1Nn b a nn n ∈-=,则=nb。

7、设数列{}n a 满足11=a ,()1111>+=-n a a n n ,写出这个数列的前5项。

8、设数列{}n a 满足51=a ,n n a a 31=+,写出这个数列的前5项并归纳猜想通项公式。

9、数列{}n a 中,nn n a a a a a +==+12,11,写出这个数列的前4项,并根据前4项观察规律,写出数列的一个通项公式。

10、设数列{}n a 满足11=a ,13321++=-+n n a a n n ,写出这个数列的前5项并归纳通项公式。

11、已知数列{}n a 满足q pa a a n n +==+11,1,且15,342==a a ,求q p ,的值。

参考答案:1、 B2、 B3、 B4、 C5、B6、12131-⎪⎭⎫⎝⎛-⨯-=n n a7、58,35,23,2,154321=====a a a a a8、405,135,45,154321====a a a a 135-⨯=n n a 9、aa a aa a aa a aa 718314122321+=+=+==()aa a n n n 121211-+=--10、125,64,27,8,154321=====a a a a a 3n a n = 11、解:由已知可得q pa a +=12,即3=+q p()q pq a p q q pa p q pa a ++=++=+=22234即1532=++q pq p联立方程组⎩⎨⎧=++=+15332q pq p q p 解得⎩⎨⎧=-=63q p 或⎩⎨⎧==12q p。

二阶递推数列特征根结论推导

二阶递推数列特征根结论推导

二阶递推数列特征根结论推导【摘要】本文主要探讨了二阶递推数列特征根的推导过程。

在介绍了递推数列及其特征根的重要性。

在首先推导了一阶递推数列的特征根,然后详细解释了特征方程的求解方法。

接着,深入分析了二阶递推数列特征根的推导过程,并探讨了特征根的性质。

总结了特征根的结论。

通过本文的研究,读者可以更深入地理解递推数列特征根的求解方法及其在数学领域的应用价值。

结论部分对整篇文章进行了简洁明了的总结,强调了特征根的重要性。

本文旨在帮助读者加深对二阶递推数列特征根的理解,为相关领域的学习提供指导。

【关键词】二阶递推数列、特征根、特征方程、性质分析、结论、推导、引言1. 引言1.1 引言递推数列在数学中扮演着重要角色,它们描述了数列中每个元素如何由前面的元素递推而来。

在研究递推数列时,我们常常会遇到特征根的概念。

特征根可以帮助我们解出递推数列的通项公式,从而更深入地理解数列的性质和规律。

在本文中,我们将探讨二阶递推数列特征根的推导过程。

我们会回顾一阶递推数列特征根的推导过程,然后引出二阶递推数列特征根的推导方法。

通过对特征根的性质进行分析,我们将探讨特征根对递推数列的影响,以及特征根的结论推导过程。

通过本文的学习,读者将能够更深入地理解递推数列中特征根的重要性,以及如何利用特征根推导递推数列的通项公式。

希望本文能够帮助读者在数学领域中更好地理解和运用递推数列的知识。

2. 正文2.1 一阶递推数列特征根推导设一阶递推数列为{a_n},其通项公式为a_n = c_1\lambda^n,其中c_1为常数,\lambda为特征根。

进一步化简得到\lambda = p,即一阶递推数列的特征根\lambda等于递推式中的常数p。

这个结论可以直接由递推数列的定义推导得到,不需要特殊的推理过程。

一阶递推数列的特征根推导是比较简单和直接的。

总结一下,一阶递推数列特征根推导的过程可以归结为将递推式表示为a_{n+1} = p\cdot a_n,然后将通项公式代入递推式,通过化简得到特征根等于常数p的结论。

基本算法2-递推法实例

基本算法2-递推法实例

一般地,设原来的符合题意的n-1条直线把这平面分成 个区域,再增加一条直线l,就变成n条直线,按题设条 件,这l必须与原有的n-1条直线各有一个交点, 且这n-1个交点 及原有的交点互不重合。这n-1个交点把l划分成n个区间,每 个区间把所在的原来区域一分为二,所以就相应比原来另增 了n个区域,即:
const max=100; var
f1,f2,s:array[1..max] of longint; i,j,k,l,n:longint; begin readln(n); f1[max]:=0 ; f1[max-1]:=1; {F0=10} for i:= 1 to n do
begin f2:=f1; k:=0; { ×7 } for j:= max downto 1 do begin k:=k+f1[j]*7; f1[j]:=k mod 10; k:=k div 10; end;
end.
var a,b:array[1..100] of longint; i,j,n:longint;
begin readln(n); a[100]:=4 ; b[100]:=1; for i:= 2 to n do begin for j:= 100 downto 1 do b[j]:=b[j]*2; for j:= 100 downto 2 do if b[j]>=10 then begin b[j-1]:=b[j-1]+b[j] div 10 ; b[j]:=b[j] mod 10; end; for j:= 100 downto 1 do begin a[j]:=a[j]+b[j]; if a[j]>=10 then begin a[j-1]:=a[j-1]+a[j] div 10 ; a[j]:=a[j] mod 10; end; end; end; j:=1; while a[j]=0 do j:=j+1; for i:= j to 100 do write(a[i]) ;

2.1.2 数列的递推公式

2.1.2 数列的递推公式

解答
1月 1对
解答
1月 1对 2月 1对
解答
1月 1对 2月 1对 3月 2对
ห้องสมุดไป่ตู้答
1月 2月 3月 4月 1对 1对 2对 3对
解答
1月 2月 3月 4月 5月 1对 对 2对 3对 5对
解答
1月 2月 3月 4月 5月 6月 1对 1对 2对 3对 5对 8对
解答
1月 2月 3月 4月 5月 6月 7月 1对 1对 2对 3对 5对 8对 13 对
256 ( 2) 是此数列中的项吗? 225
an n
2
a1 a2 an n2 所以,两式相除得 an a1 a2 an1 (n 1)2 n≥2,n∈N+,
a1 a2
an1 (n 1)
2
25 9 所以 a3 , a5 16 4
9 25 61 a3 a5 4 16 16
a1 2 3
3
a2 2
2
2a3 2 a4 a3 2 5
2a4 1 a5 a4 2 3
2 归纳出它的通项公式是 an n 1
例4. 数列{an}中,a1=1,对于所有的n≥2且 n∈N+,都有 a1 a2 (1)求a3+a5;
an n
2
解法1:(1)因为 a1 a2
256 n2 225 (n 1) 2
解:(2)令 解得n=16.

16 n 15 n 1
256 所以 是此数列中的一项。 225
问题提出

1202 年,斐波那契在他的著作中, 提出以下的一个问题: 假设一对初生兔子要一个月才到成熟 期,而一对成熟兔子每月会生一对兔 子,那么,由一对初生兔子开始,12 个月后会有多少对兔子呢?

2-2 递推关系与Fibonacci数列

2-2 递推关系与Fibonacci数列

__________ __________ ________
+)
H ( x) x 2 xH ( x) x 2 /(1 x)
同样可以得到:
x H ( x) . 1 x 1 2 x
下面我们用幂级数展开的方法得到h(n).
假设
x A B H ( x) . 1 x 1 2 x 1 2 x 1 x 利用待定系数法容易得到A=1,B=-1,即 1 1 H ( x) (2 x )n x n 1 2 x 1 x n 0 n 0
因此由二项式展开定理可知
( n)( n 1)( n r 1) C (n, r ) (1) r!
r
n(n 1)(n r 1) C (n r 1, r ). r!
2. Fibonacci数列
Fibonacci数列是递推关系的又一个典型问题,数 列的本身有着许多应用。
下面介绍一些关于Fibonacci数列的结论。
(1) 任意正整数N可以表示成Fibonacci数列中的数的 有限和,即
N = si Fi ,
i =2 n
满足si=0或1,且si si+1=0。
(2) 边长为Fn的正方形可以分解为若干个边长为Fi和 Fi+1的长方形。 参见课本图形。
(3) F1 F2 Fn Fn 2 1;
当n=2时,
第一步把A柱的小圆盘移到B柱;
第二步把A柱的大圆盘移到C柱; 第三步把B柱的小圆盘移到C柱,即完成移动。
A
B
C
假定n-1个盘子的转移算法已经确定,对于一般n个 圆盘的问题, 首先把A柱上面的n-1个圆盘移到B柱; 然后把A柱最下面的圆盘移到C柱; 最后把B柱的n-1个圆盘移到C柱,即完成移动。

二阶递推数列的常用处理策略及其应用

二阶递推数列的常用处理策略及其应用

二阶递推数列的常用处理策略及其应用
1.迭代法
迭代法是一种基本的数学计算方法,可以用于处理二阶递推数列。

迭代法的基本思路是根据递推关系式,从初始条件开始依次计算每个数列项的值。

这种方法简单直接,适用于逐个计算数列项或其中一特定数列项的情况。

2.特征方程法
特征方程法是处理二阶递推数列的重要方法。

它通过求解特征方程来确定数列的通项公式,从而能够高效地计算数列中任意一项的值。

具体步骤包括:假设数列的通项公式为an = λ1^n + λ2^n,将通项公式代入递推关系式,得到特征方程;解特征方程得到特征根λ1和λ2,进而确定通项公式。

3.矩阵幂法
矩阵幂法是处理二阶递推数列的一种高效方法。

它利用矩阵的乘法和幂运算的性质,将二阶递推数列转化为一个矩阵乘法的问题。

具体步骤包括:将递推关系式写成矩阵形式,然后通过矩阵幂运算迭代计算数列的每一项的值。

这种方法的优点是计算效率高,适用于计算数列中大量项的情况。

4.差分法
差分法是一种常用的数列处理方法,特别适用于处理二阶递推数列。

差分法的基本思路是通过数列项之间的差分关系,将二阶递推数列转化为一阶递推数列或常数数列。

具体步骤包括:计算数列项之间的差分,得到
新的数列;再次对新的数列进行差分,直到得到一阶递推数列或常数数列。

差分法简单易行,适用于计算数列的差分、求和等问题。

2-3经典的一阶递推

2-3经典的一阶递推

1.当
f
n
A 时,
an1
A k 1
k
an
k
A 1
, an
k
A
1是以a1
k
A 为首项,k为公比的等比数列 1

2.当
f n
Ak
n
时,同除以
k
n
,得:
an1 kn
an k n1
A 数列
an k n1
是以
a1为首项,A为公差的等差数列


an k n1
a1
An 1 .
3.当 f n Aqn (k q) 时,可用待定系数法, an1 xqn1 k an xqn ,对比系数可知 A xk q ,
【例
7】已知数列 an是首项为
a1
4,an1
5n 5n
7 2
an
75n
7 ,求 an通项公式.
【解析】
an1 5n 7
an 5n
2
7, an1 5n 7
an 5n
2
7 ,故
an 5n
2
4 7
7(n
1) an
1 7
(245n2
127n
90) .
【例
8】已知数列 an是首项为
a1
1,
an1
an An2 Bn C a1 A B C k n1 an a1 A B C k n1 An2 Bn C .
【例
9】已知数列 an是首项为
a1
2 3
,满足
an1
2an n
an 1
1,2,.
(1)求
an
通项公式;(2)求数列
n an

10.二元递推

10.二元递推

第九讲:二元递推二元递推数列的递推基本形式:数列{a n }和{b n }满足:a 1=a,b 1=b,且⎩⎨⎧==++),(),(11n n n n n n b a g b b a f a .对此类问题,可借助于解方程组的消元思想和换元思想来解决,1.消元方法例1:(2008年辽宁高考试题)在数列{a n },{b n }中,a 1=2,b 1=4,且a n ,b n ,a n+1成等差数列,b n ,a n+1,b n+1成等比数列(n ∈N*).(Ⅰ)求a 2,a 3,a 4及b 2,b 3,b 4,由此猜测:{a n },{b n }的通项公式,并证明你的结论; (Ⅱ)证明:1251112211<++⋅⋅⋅++++n n b a b a b a . 解析:(Ⅰ)由题知⎩⎨⎧==++++12112n n n n n n b b a b a a ⇒⎩⎨⎧==⇒⎩⎨⎧==+962222122121b a b b a b a a ,易知a n >0,b n >0,且a n+1=1+n n b b ⇒n n b b 1-+1+n n b b=2b n ⇒1-n b +1+n b =2n b ,所以数列{n b }是等差数列⇒n b =n+1⇒b n =(n+1)2⇒a n =n(n+1);(II)因a n +b n =(n+1)(2n+1)>2n(n+1)⇒)111(211+-<+n n b a n n ⇒n n b a b a b a ++⋅⋅⋅++++1112211<61+21(21-11+n )<125. [思想方法]:二元递推数列{a n }和{b n }满足:a 1=a,b 1=b,且⎩⎨⎧==++),(),(11n n n n n n b a g b b a f a 的一种基本解法是:消元法.即在递推关系式组⎩⎨⎧==++),(),(11n n n n n n b a g b b a f a 中,由其中一式解出a n ,或b n ,代入另一式得关于数列{a n },或数列{b n }的递推关系式,由此求通项解决问题.类题:1.各项均为正数的数列{a n }、{b n },a 1=1,b 1=2,且对一切n∈N 都有lgb n ,lga n+1,lgb n+1成等差数列,15,3,5+n n n a b a 成等比数列. (Ⅰ)求证:{n b }成等差数列; (Ⅱ)求b n 和a n .2.(2007年复旦大学自主招生试题)己知数列{a n }、{b n }满足:a 1=2,b 1=4,且⎩⎨⎧+=--=++nn n nn n b a b b a a 66211.(Ⅰ)求a n ,b n ; (Ⅱ)求∞→n lim nnb a .2.换元方法 例2:(2007年辽宁高考试题)己知数列{a n }、{b n }满足:a 1=2,b 1=1,且⎪⎪⎩⎪⎪⎨⎧++=++=----14341141431111n n n n n n b a b b a a (n ≥2).(Ⅰ)令c n =a n +b n ,求数列{c n }的通项公式; (Ⅱ)求数列{a n }的通项公式及前n 项和公式S n .解析:(Ⅰ)把己知条件中的两式相加得a n +b n =a n-1+b n-1+2⇒c n =c n-1+2⇒c n =2n+1;(Ⅱ)把己知条件中的两式相减得a n -b n =21(a n-1-b n-1)⇒a n -b n =(21)n-1,又由(I)知a n +b n =2n+1⇒a n =(21)n+n+21⇒S n =1- (21)n +21n(n+1)+21n=21n 2+n+1-(21)n .[思想方法]:二元递推数列{a n }和{b n }满足:a 1=a,b 1=b,且⎩⎨⎧==++),(),(11n n n n n n b a g b b a f a 的一种基本解法是:换元法.即在递推关系式组⎩⎨⎧==++),(),(11n n n n n n b a g b b a f a 中,首先令x n =F(a n ,b n ),通过己知的递推关系式组,去建立x n+1与x n 的递推关系式,求数列{x n }的通项;再令y n =G(a n ,b n ),通过己知的递推关系式组,去建立y n+1与y n 的递推关系式,求数列{y n }的通项.由此解决问题.类题:1.己知数列{a n }、{b n }满足:a 1=45,b 1=43,且⎪⎩⎪⎨⎧-=-++=+++++)(2)(21111n n n n n n n n b a b a b a n n b a . (Ⅰ)求数列{a n }和{b n }的通项公式; (Ⅱ)求数列{a n }的前n 项和S n .2.己知数列{a n }、{b n }满足:a 1=1,b 1=2,且⎩⎨⎧+-=-++=+++++12121111n n n n n n n n b a b a b a b a .(Ⅰ)求数列{a n }和{b n }的通项公式; (Ⅱ)求数列{a n b n }的前n 项和S n .3.奇偶递推例3:(2004年全国I 高考试题)己知数列{a n }中,a 1=1,且a 2k =a 2k-1+(-1)k ,a 2k+1=a 2k +3k ,其中k=1,2,3,….(Ⅰ)求a 3,a 5;(Ⅱ)求{a n }的通项公式.解析:(Ⅰ)因a 2k+1=a 2k +3k =a 2k-1+(-1)k +3k ,所以a 2n-1=a 1+(a 3-a 1)+(a 5-a 3)+…+(a 2n-1-a 2n-3)=1+[(-1)+3]+[(-1)2+32]+…+[(-1)n-1+3n-1]=3131)1(1])1(1)[1(1--+------n n =21[3n -(-1)n ]-1⇒a 2n =21[3n -(-1)n ]-1+(-1)n =21[3n +(-1)n]-1,所以,当n 为奇数时,a n = 21[2121)1(3++--n n ]-1;当n 为偶数时,a n =21[22)1(3nn -+]-1. [思想方法]:奇偶递推型问题,即己知数列{a n }满足:a 1=a,a 2=b,且⎩⎨⎧==++++),(),(1223212222n n n n n n a a g a a a f a ,解决该类数列的关键是由中⎩⎨⎧==++++),(),(1223212222n n n n n n a a g a a a f a 消去a 2n+1(或a 2n ),建立a 2n+2与a 2n (或a 2n+1与a 2n-1)的递推关系,即通过研究数列{a n )的偶(或奇)子列{a 2n }(或{a 2n-1},去解决原数列问题.类题:1.(2010年天津高考试题)在数列{a n }中,a 1=0,且对任意k ∈N*,a 2k-1,a 2k ,a 2k+1成等差数列,其公差为d k . (Ⅰ)若d k =2k,证明a 2k ,a 2k+1,a 2k+2成等比数列(k ∈N*);(Ⅱ)若对任意k ∈N*,a 2k ,a 2k+1,a 2k+2成等比数列,其公比为q k ,设q 1≠1,证明{11-k q }是等差数列. 2.(2004年全国高中数学福建初赛联赛试题)无穷数列{x n }中(n ≥1),对每个奇数n,x n ,x n+1,x n+2成等比数列,而对每个偶数n,x n ,x n+1,x n+2成等差数列.已知x 1=a(a>0),x 2=b. (Ⅰ)求数列{x n }的通项公式; (Ⅱ)求x 2,x 4,…,x 2n 的调和平均值,即∑=nk kx n 121的值.4.a n 与S n 递推例4:(2011年全国高中数学联赛江苏初赛试题)设数列{a n }的前n 项和为S n .如果a 1=21,a n =-5S n S n-1(n ≥2),求数列{a n }的通项公式a n .解析:由a n =-5S n S n-1(n ≥2)⇒S n -S n-1=-5S n S n-1,先证S n ≠0,S 1=a 1≠0,假设S n-1≠0,则S n ≠0,否则S n =0,由S n -S n-1=-5S n S n-1⇒S n-1=0,矛盾.S n -S n-1=-5S n S n-1⇒111--n n S S =5⇒nS 1=5n-3⇒S n =351-n ⇒a n =S n -S n-1=351-n -851-n .注意a 1不适合a n . [思想方法]:a n 与S n 的递推问题的实质是二元数列{a n }与{S n }的递推问题,因此二元递推问题的解题思想均适用于a n与S n 的递推问题.类题:1.(2012年江苏高考试题)已知数列{a n }中,a 1=1,前n 项和S n =32+n a n . (Ⅰ)求a 1,a 2;(Ⅱ)求数列{a n }的通项公式.2.(2011年全国高中数学联赛安徽初赛试题)已知数列{a n }满足a 1=a 2=1,a n =1-421-⋅⋅⋅+n a a (n ≥3),求a n 的通项公式.5.关联递推例5:(2011年天津高考试题)已知数列{a n }与{b n }满足b n a n +a n+1+b n+1a n+2=0,b n =2)1(3n-+,n ∈N +,且a 1=2,a 2=4.(Ⅰ)求a 3,a 4,a 5的值;(Ⅱ)设c n =a 2n-1+a 2n+1,n ∈N +,证明:{c n }是等比数列; (Ⅲ)设S k =a 2+a 4+…+a 2k ,k ∈N +,证明:∑=nk kk a S 41<67(n ∈N +). 解析:(Ⅰ)由b n a n +a n+1+b n+1a n+2=0,b n =2)1(3n-+⇒2)1(3n -+a n +a n+1+2)1(31+-+n a n+2=0⇒a 1+a 2+2a 3=0,2a 2+a 3+a 4=0,a 3+a 4+2a 5=0⇒a 3=-3,a 4=-5,a 5=4;(Ⅱ)由2)1(3n -+a n +a n+1+2)1(31+-+n a n+2=0⇒a 2n-1+a 2n +2a 2n+1=0…①,2a 2n +a 2n+1+a 2n+2=0…②;由①:a 2n =-a 2n-1-2a 2n+1⇒a 2n+2=-a 2n+1-2a 2n+3,代入②得:-2a 2n-1-4a 2n+1+a 2n+1-a 2n+1-2a 2n+3=0⇒a 2n+1+a 2n+3=-(a 2n-1+a 2n+1)⇒c n+1=-c n (c 1=-1)⇒{c n }是等比数列; (Ⅲ)由(Ⅱ):c n =(-1)n⇒a 2n-1+a 2n+1=(-1)n⇒112)1(++-n n a -nn a )1(12--=-1⇒nn a )1(12--=-(n+1)⇒a 2n-1=-(n+1)(-1)n,代入①得:a 2n =-(n+3)(-1)n⇒S 2k =-k,S 2k-1=S 2k -a 2k =k+3⇒∑=nk k k a S 41=∑=--n m m m a S 13434(+2424--m m a S +1414--m m a S +m m a S44)=∑+=n m m m 1222(-2212+-m m -1232++m m +322+m m )=∑++++=nm m m m m 1])32)(22(3)12(22[=322⋅+∑+=n m m m 2)12(25+)32)(22(3++n n <322⋅+∑+-=n m m m 2)12)(12(5+)32)(22(3++n n =31+25[(31-51)+(51-71)+…+(121-n -121+n )]+)32)(22(3++n n =67-25121+n +)32)(22(3++n n <67. [思想方法]:关联递推是特殊的二元递推,基本解法是:先求其中一个数列的通项公式,由此再求另一个数列的通项,最后解决相关问题.类题:1.(2008年天津高考试题)在数列{a n }与{b n }中,a 1=1,b 1=4,数列{a n }的前n 项和S n 满足:nS n+1-(n+3)S n =0,2a n+1为b n 与b n+1的等比中项,n ∈N*. (Ⅰ)求a 2,b 2的值;(Ⅱ)求数列{a n }与{b n }的通项公式;(Ⅲ)设T n =n a a a b b b n )1()1()1(2121-+⋅⋅⋅+-+-,n ∈N*.证明:|T n |<2n 2,n ≥3.2.(1996年全国高中数学联赛试题)设数列{a n }的前项和S n =2a n -1(n=1,2,3, ),数列{b n }满足b 1=3,b k+1=a k +b k (k=1,2,3 ).求数列{b n }的前n 项和.6.综合问题例6: (2010年武汉大学保送生考试试题)设{A n (a n ,b n )}为平面上的点列,其中数列{a n }、{b n }满足:a n+1=2+223nnnb a a +,b n+1=-223nnnb a b +,已知A 1的坐标为(1,2).(Ⅰ)确定点A 1、A 2、A 3所在圆C 的方程; (Ⅱ)证明:点列{A n }在定圆C 上; (Ⅲ)求数列{a n }的通项公式.解析:(Ⅰ)由a 1=1,b 1=2⇒A 2(513,-56),A 3(41121,4118)⇒A 1A 2和A 1A 3的中垂线方程分别为x-2y-1=0、5x-4y-5=0⇒圆C的方程:(x-1)2+y 2=4;(Ⅱ)用数学归纳法证明:假设点A k 在圆C 上,即(a k -1)2+b k 2=4⇒a k 2+b k 2=2a k +3;则(a k+1-1)2+b k+12=(1+223k k kb a a +)2+(-3kkkb a b +)2=(1+323+k k a a )2+(-323+k k a b )2=222)32(993025++++k k k k a b a a =22)32(9)32(93016+++++k k k k a a a a =4⇒点A k+1在圆C 上,根据数学归纳法原理:点列{A n }在定圆C 上;(Ⅲ)由a n 2+b n 2=2a n +3⇒a n+1=2+223nn n b a a +=2+323+n n a a =3267++n n a a ,其特征方程:x=3267++x x 有根x=-1,3;所以,1311+-++n n a a =1326733267+++-++n n n n a a a a =91⋅13+-n n a a ⇒13+-n n a a =-(91)n-1⇒a n =1919311+-⋅--n n . [思想方法]:略 类题:1.(2012年江苏高考试题)已知各项均为正数的两个数列{a n }和{b n }满足a n+1=22nnnn b a b a ++,n ∈N +.(Ⅰ)设b n+1=1+n n a b ,n ∈N +.求证:数列{(n n a b )2}是等差数列; (Ⅱ)设b n+1=2nna b ,n ∈N +,且{a n }是等比数列,求a 1和b 1的值, 2.在数列{a n },{b n }中,a 1=1,b 1=tan θ,且a n+1=a n cos θ-b n sin θ,b n+1=a n sin θ+b n cos θ. (Ⅰ)求数列{a n },{b n }的通项公式; (Ⅱ)求数列{a n },{b n }的前n 项和S n ,T n .。

递推求通项公式2

递推求通项公式2
[ 解析 ] (1) 方法一:由 an + 1 = 2Sn + 1 可得 an = 2Sn - 1 + 1(n≥2),两式相减得 an+1-an=2an,an+1=3an(n≥2). 又 a2=2S1+1=3,所以 a2=3a1,故{an}是首项为 1,公 比为 3 的等比数列,所以 an=3n-1. 方法二:由于 an+1=Sn+1-Sn,an+1=2Sn+1,所以 Sn+1- 1 1 Sn=2Sn+1, Sn+1=3Sn+1, 把这个关系化为 Sn+1+ =3Sn+2, 2 1 1 3 即得数列Sn+2为首项是 S1+ = ,公比是 3 的等比数列, 2 2 1 3 1 n 1 n 1 n-1 故 Sn+2=2×3 =2·3 ,故 Sn=2·3 -2.所以,当 n≥2 时, - an=Sn-Sn-1=3n 1,当 n=1 时 a1=1 也适合这个公式,故所 - 求的数列{an}的通项公式是 an=3n 1.
课堂小结:
1、充分认识和与项的关系 2、对于常规方法不能求通项的问题 可想想数学归纳法
3、如果一个数列的奇数 项和偶数项具备不同的 特征, 我们要将奇数项和偶数 项分开求通项
当堂诊学
1、 已 知 数 列 {an}中 , a1 1, a2 2.an2 2an 3。 求 数 列 的 通 项
例 3、设数列{an}的前 n 项和为 S n,并且满足 2S n =a2 n+ n ,an>0(n ∈N*).(1)求 a1,a2,a3; (2)猜想 {an }的通项公式,并加以证明;
(ii)假设当n=k(k≥2)时,ak=k. 那么当n=k+1时, 2 2 a2 = 2 a + a - 1 = 2 a + k -1, + + + k 1 k 1 k k 1 即a 2 k+1 -2ak+1-(k+1)(k-1)=0⇒[ak+1-(k+1)][ak+1+ (k-1)]=0, ∵ak+1>0,k≥2,∴ak+1+(k-1)>0, ∴ak+1=k+1. 这就是说,当n=k+1时也成立, ∴an=n(n≥2).显然n=1时,也适合. 故对于n∈N*,均有an=n.

递推关系的建立及其求解方法2

递推关系的建立及其求解方法2

• 对一个试题,我们要是能找到后一项与前一项的关系并 清楚其起始条件(或最终结果),问题就可以递推了, 接下来便是让计算机一步步了。让高速的计算机从事这 种重复运算,真正起到“物尽其用”的效果。
递推概念
给定一个数的序列H0,H1,…,Hn,…若存
在整数n0,使当n=n0时,可以用等号(或大 于号、小于号)将Hn与其前面的某些项 Hn(0i<n)联系起来,这样的式子就叫做递 推关系。
f(i)* f(n - i - 1)
i 0
n 1
为了计算的方便:约定f(0)=1
问题三:出栈序列 问题描述:N个不同元素按一定的顺序入栈,求不同的出栈序列数目。 【问题分析】: 设f(n)为n个元素的不同出栈序列数目。 容易得出:f(1)=1;f(2)=2。 第n个元素可以第i(1<=i<=n)个出栈,前面已出栈有i-1个元素,出栈方 法:f(i-1);后面出栈n-I 个元素,出栈方法为:f(n-i)。所以有: F(n)= 约定: F(0)=1
F(n)=
f(i)* f(n - i 1)
i 2
n 1
问题二:二叉树数目 问题描述:求n个结点能构成不同二叉数的数目。
【问题分析】: 设F(n)为n个结点组成二叉树的数目。 容易知道:f(1)=1;f(2)=2,f(3)=5
选定1个结点为根,左子树结点的个数为i,二叉树数目f(i)种; 右子树结点数目为n-i-1,二叉树数目f(n-i-1)种,I的可取范围[0, n-1]。所以有: F(n)=
问题:
一个数列的第0项为0,第1项为1,以后 每一项都是前两项的和,这个数列就是著名的 裴波那契数列,求裴波那契数列的第N项。
解答
• 由问题,可写出递推方程

(2)递归与递推

(2)递归与递推

2.1 遍历问题【问题描述】我们都很熟悉二叉树的前序、中序、后序遍历,在数据结构中常提出这样的问题:已知一棵二叉树的前序和中序遍历,求它的后序遍历,相应的,已知一棵二叉树的后序遍历和中序遍历序列你也能求出它的前序遍历。

然而给定一棵二叉树的前序和后序遍历,你却不能确定其中序遍历序列,考虑如下图中的几棵二叉树:所有这些二叉树都有着相同的前序遍历和后序遍历,但中序遍历却不相同。

【输入】输入数据共两行,第一行表示该二叉树的前序遍历结果s1,第二行表示该二叉树的后序遍历结果s2。

【输出】输出可能的中序遍历序列的总数,结果不超过长整型数。

【样例】travel.inabcbcatravel.out42.2 产生数【问题描述】给出一个整数n(n<1030)和m个变换规则(m≤20)。

约定:一个数字可以变换成另一个数字,规则的右部不能为零,即零不能由另一个数字变换而成。

而这里所说的一个数字就是指一个一位数。

现在给出一个整数n和m个规则,要你求出对n的每一位数字经过任意次的变换(0次或多次),能产生出多少个不同的整数。

【输入】共m+2行,第一行是一个不超过30位的整数n,第2行是一个正整数m,接下来的m 行是m个变换规则,每一规则是两个数字x、y,中间用一个空格间隔,表示X可以变换成Y。

【输出】仅一行,表示可以产生的不同整数的个数。

【样例】build.in1 2 321 22 3build.out62.3 出栈序列统计【问题描述】栈是常用的一种数据结构,有n个元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列。

你已经知道栈的操作有两种:push和pop,前者是将一个元素进栈,后者是将栈顶元素弹出。

现在要使用这两种操作,由一个操作序列可以得到一系列的输出序列。

请你编程求出对于给定的n,计算并输出由操作数序列1,2,…,n,经过一系列操作可能得到的输出序列总数。

【输入】就一个数n(1≤n≤1000)。

【输出】一个数,即可能输出序列的总数目。

递推(二):递推法的应用

递推(二):递推法的应用

递推(⼆):递推法的应⽤下⾯通过⼀些典型实例及其扩展来讨论递推法的应⽤。

【例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的⾻牌)。

递推和递归

递推和递归

递推和递归
递推和递归都是计算机科学中常用的算法思想。

递推是一种通过已知值求解未知值的算法,通常是从已知值开始,根据已知值和某种递推公式,依次计算出未知值。

递推算法通常使用循环结构实现,适用于求解数列、斐波那契数列等问题。

例如,斐波那契数列的递推公式为:F(n) = F(n-1) + F(n-2),其中F(0)=0,F(1)=1。

通过递推公式和已知值F(0) 和F(1),可以依次计算出F(2)、F(3)、F(4) 等未知值。

递归是一种通过调用自身函数来解决问题的算法,通常用于解决复杂的问题,例如树的遍历、图的搜索等问题。

递归算法通常使用函数的递归调用来实现,适用于求解具有递归结构的问题。

例如,计算n! 的递归函数可以定义为:factorial(n) = n * factorial(n-1),其中factorial(0)=1。

通过递归调用factorial 函数,可以依次计算出n! 的值。

需要注意的是,递推和递归都需要考虑边界条件和递归深度等问题,否则可能会导致程序出现栈溢出等错误。

二次递推公式

二次递推公式

二次递推公式好的,以下是为您生成的关于“二次递推公式”的文章:在数学的奇妙世界里,二次递推公式就像是一座隐藏在迷雾中的神秘城堡,让不少同学望而却步。

但别怕,今天咱们就一起来揭开它那神秘的面纱。

我还记得有一次给学生们讲二次递推公式的时候,那场景真是让我印象深刻。

那是一个阳光明媚的上午,教室里的气氛却有些凝重。

当我在黑板上写下二次递推公式的那一刻,我看到了不少同学脸上露出了迷茫和担忧的神情。

二次递推公式,简单来说,就是通过前两项或前几项的关系,来逐步推导出后续的项。

比如说,有一个数列{a_n},它的递推公式是 a_n = 2a_{n - 1} - a_{n - 2} ,这就是一个典型的二次递推公式。

咱们来仔细瞅瞅这个公式。

假设前两项 a_1 和 a_2 已知,那通过这个公式,就能依次算出 a_3、a_4 等等。

这就像是搭积木,一块一块往上垒,每一块都依赖于之前搭好的基础。

再举个例子,有这样一个数列:1,3,5,7,9…… 它的二次递推公式可以是 a_n = a_{n - 1} + 2 。

从 1 开始,每次都在前一项的基础上加 2 ,就得到了后面的数。

那二次递推公式有啥用呢?比如说在解决一些找规律的问题时,如果发现规律符合二次递推的形式,那就能用相应的方法快速找到答案。

还记得我之前提到的那个课堂吗?有个叫小明的同学,一开始怎么都搞不懂。

我就一步一步引导他,先从简单的例子入手,让他自己动手计算。

慢慢地,他的眼神不再迷茫,开始有了亮光。

最后,当他成功解出一道难题时,那兴奋的表情,让我觉得所有的努力都值了。

学习二次递推公式,不能死记硬背,得理解其中的逻辑。

多做几道练习题,多总结规律,慢慢地就能掌握它的精髓。

而且,二次递推公式不仅仅在数学考试中有用,在生活中其实也能找到它的影子。

比如说,预测经济增长趋势、分析人口变化等等,都可能用到类似的思维方式。

总之,二次递推公式虽然看起来有点复杂,但只要咱们有耐心,有方法,就一定能攻克它。

通项公式和递推公式(二)

通项公式和递推公式(二)

通项公式和递推公式(二)通项公式和递推公式1. 什么是通项公式通项公式是指能够直接计算数列中的任意一项的公式。

它不需要通过前面的项来计算,而是直接给出某一项的数值。

通项公式可以大大简化计算数列的过程,特别是对于复杂的数列。

下面是一些常见的数列的通项公式及其示例:•等差数列的通项公式:a n=a1+(n−1)d其中,a n表示数列中的第n项,a1表示数列中的第一项,d表示公差。

例如,对于等差数列2,4,6,8,…,其通项公式为a n=2+(n−1)2。

•等比数列的通项公式:a n=a1⋅r(n−1)其中,a n表示数列中的第n项,a1表示数列中的第一项,r表示公比。

例如,对于等比数列3,6,12,24,…,其通项公式为a n=3⋅2(n−1)。

2. 什么是递推公式递推公式是指通过前面的项来计算下一项的公式。

它需要已知数列中的前几项,通过执行特定的计算来得到数列中的下一项。

递推公式是数列中常见的计算方法之一。

下面是一些常见的数列的递推公式及其示例:•斐波那契数列的递推公式:f n=f n−1+f n−2其中,f n表示数列中的第n项,f n−1和f n−2分别表示数列中的第n−1项和第n−2项。

例如,对于斐波那契数列0,1,1,2,3,5,8,…,其递推公式为f n=f n−1+f n−2。

•等差数列的递推公式:a n=a n−1+d其中,a n表示数列中的第n项,a n−1表示数列中的第n−1项,d表示公差。

例如,对于等差数列2,4,6,8,…,其递推公式为a n=a n−1+2。

总结通项公式和递推公式是数学中用来计算数列的重要工具。

通过通项公式,我们可以直接通过计算得到数列中的任意一项;通过递推公式,我们可以通过已知的数列前几项来计算数列中的下一项。

这些公式在解决问题、推导数学定理和进行数值计算等方面都有广泛的应用。

二阶数列递推公式求通项方法

二阶数列递推公式求通项方法

二阶数列递推公式求通项方法
嘿,朋友!今天咱们要来好好聊聊二阶数列递推公式求通项方法呀!这可真是个超级有趣的东西呢!就好比你在走迷宫,而这个方法就是帮你找到出口的关键线索!比如说有个二阶数列 1,2,5,10,那怎么求出它的通项呢?
咱先别着急,一步一步来。

想象一下,这就像是搭积木,一块一块地往上垒。

首先要找到这个数列的规律,就像找到搭积木的正确顺序。

有时候可能一下子就找到了,那可太棒啦,心里那个高兴劲儿呀!但有时候可能会有点难,别灰心,咱继续努力呀!
然后呢,根据找到的规律去尝试各种方法,就像是尝试不同的策略去通关游戏。

可能会遇到挫折,哎呀,怎么就不对呢,但千万别放弃呀!坚持下去,说不定下一次就找到正确方法啦!就像挖宝藏,挖了好久没挖到,突然一下子就找到了,那得多兴奋呀!
最后,当你通过这个二阶数列递推公式求出通项的时候,哇,那种成就感,简直无法形容!就好像你征服了一座高山,站在山顶上,骄傲又自豪!
我觉得呀,二阶数列递推公式求通项方法真是太神奇、太有意思啦!只要我们用心去探索,就一定能发现其中的奥秘!。

五种典型的递推关系

五种典型的递推关系

五种典型的递推关系1.Fibonacci数列在所有的递推关系中,Fibonacci数列应该是最为⼤家所熟悉的。

在最基础的程序设计语⾔Logo 语⾔中,就有很多这类的题⽬。

⽽在较为复杂的Basic、Pascal、C语⾔中,Fibonacci数列类的题⽬因为解法相对容易⼀些,逐渐退出了竞赛的舞台。

可是这不等于说Fibonacci数列没有研究价值,恰恰相反,⼀些此类的题⽬还是能给我们⼀定的启发的。

数列的代表问题是由意⼤利著名数学家Fibonacci于1202年提出的“兔⼦繁殖问题”(⼜Fibonacci数列称“Fibonacci问题”)。

问题的提出:有雌雄⼀对兔⼦,假定过两个⽉便可繁殖雌雄各⼀的⼀对⼩兔⼦。

问过n个⽉后共问题有多少对兔⼦?解:设满x个⽉共有兔⼦Fx对,其中当⽉新⽣的兔⼦数⽬为Nx对。

第x-1个⽉留下的兔⼦数 解⽬设为Fx-1对。

则:Fx=Nx+ Fx-1 Nx=Fx-2 (即第x-2个⽉的所有兔⼦到第x个⽉都有繁殖能⼒) ∴ Fx=Fx-1+Fx-2 边界条件:F0=0,F1=1由上⾯的递推关系可依次得到: F2=F1+F0=1,F3=F2+F1=2,F4=F3+F2=3,F5=F4+F3=5,……。

数列常出现在⽐较简单的组合计数问题中,例如以前的竞赛中出现的“⾻牌覆盖”问Fabonacci数列题。

在优选法中,Fibonacci数列的⽤处也得到了较好的体现。

2.Hanoi塔问题问题的提出:Hanoi塔由n个⼤⼩不同的圆盘和三根⽊柱a,b,c组成。

开始时,这n个圆盘由⼤到问题⼩依次套在a柱上,如图3-11所⽰。

要求把a柱上n个圆盘按下述规则移到c柱上: (1)⼀次只能移⼀个圆盘; (2)圆盘只能在三个柱上存放; (3)在移动过程中,不允许⼤盘压⼩盘。

问将这n个盘⼦从a柱移动到c柱上,总计需要移动多少个盘次?解:设hn为n个盘⼦从a柱移到c柱所需移动的盘次。

显然,当n=1时,只需把a 柱上的盘⼦直接移动到c柱就可以了,故h1=1。

二阶线性递推数列的一个非常好的性质

二阶线性递推数列的一个非常好的性质

二阶线性递推数列的一个非常好的性质
郑宏宝
【期刊名称】《数学学习与研究:教研版》
【年(卷),期】2016(000)003
【摘要】当数列{an}的递推式满足a(n+2)+pa(n+1)+qan=0
(p,q∈R,n≥1)时,称数列{an}是一个二阶线性递推数列.这个数列是我们非常熟悉的,可以应用特征方程法求其通项.然而有些时候通项并不是我们所关心的,我们更关心的是这个数列所具有的一些性质,况且往往这种数列通项的形式非常繁琐.这里介绍一个二阶线性递推数列的非常好的性质:
【总页数】1页(P144-144)
【作者】郑宏宝
【作者单位】陕西省西安中学,710000
【正文语种】中文
【中图分类】O171
【相关文献】
1.论二阶齐次线性递推数列的性质
2.一个对称萘酞菁的LB膜及其二阶非线性光学性质的研究
3.两类二阶分式递推数列性质探究
4.顺应“学习进阶”问题深度探究——以一道二阶线性递推数列试题的深度探究为例
5.线性空间与二阶齐次线性递推数列
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

候,几乎是没有办法在短时间内出结果的。
能不能用递推的办法,建立起后项与前项之间的数学关系, 然后从初始项开始,逐项递推,最后得到问题的解呢?
从归纳的角度找规律
为了讨论方便,先把问题稍微改变一下,并不影响原意: 问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩 下的人继续从0开始报数。求胜利者的编号。 我们从实例开始去寻找规律。设m=3,J(n)表示有n个人时的胜利者编号:

上面这个例子说明,要找出递推关系,确实 是解题的关键。
倒推的一个经典题:贮油点

一辆重型卡车欲穿过1000公里的沙漠,卡车耗汽油为1 升/公里,卡车总载油能力为500公升。显然卡车装一次 油是过不了沙漠的。因此司机必须设法在沿途建立若干 个贮油点,使卡车能顺利穿过沙漠。试问司机如怎样建 立这些贮油点?每一贮油点应存储多少汽油,才能使卡
倒推到第n步

最后,I=n至始点的距离为1000-Way[n],oil[n]=500*n。 为了在I=n处取得n*500公升汽油,卡车至少从始点开n+1次满载车至
I=n,加上从I=n返回始点的n趟返程空车,合计2n+1次,2n+1趟的总耗
油量应正好为(1000-Way[n])*(2n+1),即始点藏油为oil[n]+(1000Way[n])*(2n+1)。
车以消耗最少汽油的代价通过沙漠?
贮油点
我们可以用倒推法来解决这个问题。从终点向始点倒推,逐一求出每个贮油点的 位置及存油量。下图表示倒推时的返回点。 分析: 设Way[I]——第I个贮油点到终点(I=0)的距离; oil[I]——第I个贮油点的贮油量;
倒推过程
(1)从贮油点I向贮油点I+1倒推的方法是:第一个贮油点I=1应距终点 I=0处500km,且在该点贮藏500公升汽油,这样才能保证卡车能由I=1处 到达终点I=0处,这就是说 Way[1]=500;oil[1]=500;
Hale Waihona Puke 为了在I=1处贮藏500公升汽油,卡车至少从I=2处开两趟满载油的车至I=1 处 , 所 以 I=2 处 至 少 贮 有 2*500 公 升 汽 油 ( 贮 存 500, 消 耗 500) , 即 oil[2]=500*2=1000; 加上从I=1返回至I=2处的一趟空载,合计往返3次。 三次 往返路程的 耗油量按最 省要求只能 为 500公升, 即d12=500/3km, Way[2]=Way[1]+d12=Way[1]+500/3 此时的状况如图所示。
约瑟夫环问题的描述
我们把问题描述规范一下: 有n个人围成1个圆圈,从1到n顺序编号。从 第1个人开始从1报数,报到m的人将出列自 杀,然后从他下一个人重新由1开始报数, 报到m的人将出列自杀……直到剩下1个人。 请问,最后这个人的编号是多少?
模拟法
无论是用链表实现还是用数组实现都有一个共同点:要模拟 整个游戏过程,不仅程序写起来比较烦,而且时间复杂度 高达O(nm),当n,m非常大(例如上百万,上千万)的时
习题
1129 贮油点

n-1 n-2
0
1 2 ?
?
n-m
n-m+1 n-m+2
m-2 m-1 m+1 m 1 0 n个人的约瑟夫环, 编号为k-1的人出列
n-2
重新编号后,成为一个n-1个人的约瑟 夫问题。
需要想明白的是:因为此前已经出列1个人了,所以这n-1个人中的胜利 者其实就是原来的n个人的胜利者,换句话说,你要想成为n个人中的 幸存者,那么第1个人出列后,在剩下的n-1个人中,你也要是幸存 者才行。只不过两次的编号不同罢了。 因此,设n-1个人时的幸存者编号为J(n-1),注意这是n-1个人时的编号, 还原到原来的n个人时,这个J(n-1)的编号又该是多少呢? 从上面两个环的的对应关系可以看出:编号都要加上m再模总人数n,即 有: J(n) = (J(n-1) + m ) % n 这就是约瑟夫问题的递推关系。加上初始条件: J(1)=0 我们就能轻松地解决约瑟夫问题了。 注意,在整个推导中我们用的是从0开始编号,而题目一般要求从1开始 编号,因此输出时把结果加1就行。
递推法(2)
约瑟夫环问题
约瑟夫环问题(Josephus problem)J 是由古罗马史 学家约瑟夫提出的。传说他参加并记录了公元 66~70年犹太人反抗罗马的起义。约瑟夫作为一 个将军,设法坚守裘达伯特城达47天之久。在城 市沦陷之后,他和40名死硬的将士在附近的一个 洞穴中避难。在那里,这些人表决说“要投降毋宁 死”。于是,约瑟夫建设每隔两个人杀死一人,而 这个顺序是由抽签决定的。约瑟夫有预谋地抓到了 最后一签。并且,他说服了另一名幸存者,一起投 降了罗马。
参考代码
//求n个人的约瑟夫环问题,每次第m个人出列 int Jos(int n, int m) { int i, j; j = 0; //j保存幸存者编号 for (i=2; i<=n; i++) j = (j+m) % i; // J(n) = (J(n-1)+m) %n return j; }
(2)卡车从I=2开到I=1,因为卡车最多只能装500公升油,同时又要消耗油, 为了贮备500公升油,必须从I=2到I=1往返多次。最少要往返几趟才能给I=1贮备 500公升油呢? 卡车必须在贮油点I和贮油点I+1间往返若干次。卡车每次返回I+1点时应该正 好耗尽500公升汽油,而每次从I+1点出发时又必须装足500公升汽油。两点之间 的 距 离必 须满足 在 耗油 最少的 条 件下 , 使 I 点 贮足 I*500 公升汽 油的 要 求 ( 0≦I≦n-1)。
倒推到第二步
为了在I=2处贮藏1000公升汽油,卡车至少从I=3处开三趟满载油的车至I=2处。所 以I=3处至少贮有3*500公升汽油,即oil[3]=500*3=1500。加上I=2至I=3处的二趟 返程空车,合计5次。路途耗油亦应500公升,即d23=500/5, Way[3]=Way[2]+d23=Way[2]+500/5; 此时的状况如图所示。
n J(n)
1 0
2 1
3 1
4 0
5 3
我们在手工模拟的过程中,是不是有一种重复做事的感觉? 我们从上表中发现了什么规律了吗?注意m=3的作用。
约瑟夫问题的递推关系式: J(n) = (J(n-1) + m) % n 可以从上表中的数据进行验证。 刚才是从归纳的角度来求解问题。现在我们用分析的角度来理解这个递 推式的正确性:在下面的推导中,我们假定m<n. 假定有n个人,第1个人出列(编号一定是m-1)之后,剩下的n-1个中组 成了一个新的约瑟夫环,以编号为m的人开始: m m+1 m+2 ... n-2, n-1, 0, 1, 2, ... m-2 并且从m开始报0。 现在把这n-1个人的重新编号: m --> 0 m+1 --> 1 m+2 --> 2 ... ... m-2 --> n-2 m-1 --> n-1 (这个人已经出列)
倒推到第三步
依次类推,为了在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公升,即dk,k+1=500/(2k-1), 此时的状况如图所示。 Way[k+1]=Way[k]+dk,k+1=Way[k]+500/(2k-1);
相关文档
最新文档