求这道初中一年级数学题的解法

这组数字:6,10,16,26......问,第十个数字是多少。
求答案及详细解法,谢谢!
就是意大利数学家斐那拉的兔子繁殖问题。
如果是第N个数字,有没有表示方法?

这个数列其实就是标准斐波那契数列每项都乘以2得到的,即:2,2,4,6,10,16,26,42......
那么为它的第N个数字就是斐波那契数列第N个的两倍,所以它的通项公式为:
设第N个数字为Fn,则Fn=2/根号5{[(1+根号5)/2]的n次方-[(1-根号5)/2]的n次方}(n属于正整数)
那么n=13时,Fn=466(你所写的数列的第10个是它的第13个)

下面是公式推导过程:

【斐波那挈数列通项公式的推导】

斐波那契数列:1,1,2,3,5,8,13,21……
如果设F(n)为该数列的第n项(n∈N+)。那么这句话可以写成如下形式:
F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3)
显然这是一个线性递推数列。

通项公式的推导方法一:利用特征方程
线性递推数列的特征方程为:
X^2=X+1
解得
X1=(1+√5)/2, X2=(1-√5)/2.
则F(n)=C1*X1^n + C2*X2^n
∵F(1)=F(2)=1
∴C1*X1 + C2*X2
C1*X1^2 + C2*X2^2
解得C1=1/√5,C2=-1/√5
∴F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}【√5表示根号5】
通项公式的推导方法二:普通方法
设常数r,s
使得F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]
则r+s=1, -rs=1
n≥3时,有
F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]
F(n-1)-r*F(n-2)=s*[F(n-2)-r*F(n-3)]
F(n-2)-r*F(n-3)=s*[F(n-3)-r*F(n-4)]
……
F(3)-r*F(2)=s*[F(2)-r*F(1)]
将以上n-2个式子相乘,得:
F(n)-r*F(n-1)=[s^(n-2)]*[F(2)-r*F(1)]
∵s=1-r,F(1)=F(2)=1
上式可化简得:
F(n)=s^(n-1)+r*F(n-1)
那么:
F(n)=s^(n-1)+r*F(n-1)
= s^(n-1) + r*s^(n-2) + r^2*F(n-2)
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) + r^3*F(n-3)
……
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)*F(1)
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)
(这是一个以s^(n-1)为首项、以r^(n-1)为末项、r/s为公差的等比数列的各项的和)
=[s^(n-1)-r^(n-1)*r/s]/(1-r/s)
=(s^n - r^n)/(s-r)
r+s=1, -rs=1的一解为 s=(1+√5)/2, r=(1-√5)/2
则F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}

【C语言程序】
main()
{
long fib[40] = {1,1};
int i;
for(i=2;i<40;i++)
{
fib[i ] = fib[i-1]+fib[i-2];
}
for(i=0;i<40;i++)
{
printf("F%d==%d\n", i, fib);
}
return 0;
}

【Pascal语言程序】
var
fib: array[0..40]of longint;
i: integer;
begin
fib[0] := 1;
fib[1] := 1;
for i:=2 to 39 do
fib[i ] := fib[i-1] + fib[i-2];
for i:=0 to 39 do
write('F', i, '=', fib[i ]);
end.
【数列与矩阵】
对于斐波那契数列1,1,2,3,5,8,13…….有如下定义
F(n)=f(n-1)+f(n-2)
F(1)=1
F(2)=1
对于以下矩阵乘法
F(n+1) = 1 1 * F(n)
F(n) 1 0 F(n-1)
它的运算就是
F(n+1)=F(n)+F(n-1)
F(n)=F(n)
可见该矩阵的乘法完全符合斐波那契数列的定义
设1 为B,1 1为C
1 1 0
可以用迭代得到:
斐波那契数列的某一项F(n)=(BC^(n-2))1
这就是斐波那契数列的矩阵乘法定义.
另矩阵乘法的一个运算法则A¬^n(n为偶数)=A^(n/2)* A^(n/2).
因此可以用递归的方法求得答案.
时间效率:O(logn),比模拟法O(n)远远高效。
代码(PASCAL)
{变量matrix是二阶方阵, matrix是矩阵的英文}
program fibonacci;
type
matrix=array[1..2,1..2] of qword;
var
c,cc:matrix;
n:integer;
function multiply(x,y:matrix):matrix;
var
temp:matrix;
begin
temp[1,1]:=x[1,1]*y[1,1]+x[1,2]*y[2,1];
temp[1,2]:=x[1,1]*y[1,2]+x[1,2]*y[2,2];
temp[2,1]:=x[2,1]*y[1,1]+x[2,2]*y[2,1];
temp[2,2]:=x[2,1]*y[1,2]+x[2,2]*y[2,2];
exit(temp);
end;
function getcc(n:integer):matrix;
var
temp:matrix;
t:integer;
begin
if n=1 then exit(c);
t:=n div 2;
temp:=getcc(t);
temp:=multiply(temp,temp);
if odd(n) then exit(multiply(temp,c))
else exit(temp);
end;
procedure init;
begin
readln(n);
c[1,1]:=1;
c[1,2]:=1;
c[2,1]:=1;
c[2,2]:=0;
if n=1 then
begin
writeln(1);
halt;
end;
if n=2 then
begin
writeln(1);
halt;
end;
cc:=getcc(n-2);
end;
procedure work;
begin
writeln(cc[1,1]+cc[1,2]);
end;
begin
init;
work;
end.
【数列值的另一种求法】
F(n) = [ (( sqrt ( 5 ) + 1 ) / 2) ^ n ]
其中[ x ]表示取距离 x 最近的整数。

【数列的前若干项】
1 1
2 2
3 3
4 5
5 8
6 13
7 21
8 34
9 55
10 89
11 144
12 233
13 377
14 610
15 987
16 1597
17 2584
18 4181
19 6765
20 10946
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-17
设第N个数为Xn其他同理。Xn=X(n-1)+X(n-2),n>=3,即就是第三个数为第一个数和第二个数的求和,依次类推。你要的数列依次为6,10,16,26,42,68,110,178,288,466。则第十个数字是466本回答被提问者采纳
第2个回答  2011-02-17
后面数是前面两个数的和
往下依次是 42 68 110 178 288 466

前两个数差为4
23个数差为6
34个数差为10正好为上面2差之和。
推算下去,第十个数为466

具体解法:6+10=16,10+16=26。。。。以此类推,从第三项开始,后一个数都为前2个数字的和,所以第十个数字为:466

参考资料:教科书

第3个回答  2011-02-17
第一个数为6
二 10
三 16=10+6
四 26=10+16
五 42=26+16
…… ……
可知:每一个数等于它前两个数的和,
继续:
六 68=42+26
七 110=68+42
八 178=110+68
九 288=178+110
十 466=288+178

所以第十个数为466
第4个回答  2011-02-17
1286
第n个数y=6+4+6+10+20+20×2+20×2∧2+20×2∧3+。。。。+20×2∧(n-5)
应该是这样,好久没算这种题了。
方法,嗯,一般这种会是选择或填空,如果要通式比较麻烦,(当然,一时我也想不起来怎么做了,如果你要的话说一声我再算算)考试当然要节省时间,建议你自己在草稿纸上写一写,找找规律,一般是按某种规律累加,特别是加前面几个数字之和出现最多i。
例如这个
6=6
10=6+4
16=6+4+6
26=6+4+6+10
46=6+4+6+10+20
86=6+4+6+10+20+40
不难看出关系,最后所加之数为除了首尾二数其他数字和。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网