欢迎光临散文网 会员登陆 & 注册

2017清华4.29测试数学题 x_{n+1}=x_{n}+x_{n+1}, x

2023-08-02 11:02 作者:卢朓  | 我要投稿

%北太天元求解2017清华4.29测试题目

% 已知数列{x_n}, 其中x_1 =a, x_2 = b, a,b 都是正整数,

% x_{n+1} = x_n + x_{n-1}, 若2008 为数列中的某一项, 则a+b

% 可能为 ( )

% A 8, B 9,  C 10,  D 11.

% 我们引入 c= a+b

x = zeros(2,30);

x(:,2) = [0; 1];% x_2=b 通过[c,b]* x(:,2)得到,[c,b]*[0;1] = b

x(:,3) = [1; 0];% x_3=c 通过[c,b]* x(:,3)得到,[c,b]*[1;0] = c

x(:,4) = [1; 1];% x_4=c+b 通过[c,b]*x(:,4)得到,[c,b]*[1;1]=c+b

x(:,5) = [2; 1];% x_5=2c+b 通过[c,b]*x(:,5)得到,[c,b]*[2;1]=2c+b

x(:,6) = [3; 2];% x_6=3c+2b 通过[c,b]*x(:,6)得到,[c,b]*[3;2]=3c+2b


M= [ 1 1 ;

    1 0 ];


%x(:,n+1) = M* x(:,n) ;  


for n= 3:29

   x(:,n+1) = M * x(:,n); 

end


%估计 x_n能够取得2008的n的一个下界

n_min = min( find ( sum(x) * 11 > 2008) );

%估计 x_n能够取得2008的n的一个上界

n_max = max( find ( x(1,:)*8 < 2008) );


[c,b] = meshgrid(8:11, 1:10);

%c 可能的取值8,9,10,11,

%b 可能取之 1:10, 因为 1<= b < c.


for n = n_min:n_max

   z = x(1,n)*c + x(2,n)*b;

   [行号,列号] = find(   z == 2008);

 if ( ~isempty(行号) )

       fprintf("a+b 可以取值为 %d\n", c(行号,列号));

       fprintf("b 此时取值为 %d\n", b(行号,列号));

         fprintf("这是数列的第 %d 项\n", n);

         fprintf("演草纸上的表达式 2008 = %d*%d+%d*%d\n\n", ...

             x(1,n), c(行号,列号), x(2,n), b(行号,列号) );

 end

end   



2017清华4.29测试数学题 x_{n+1}=x_{n}+x_{n+1}, x的评论 (共 条)

分享到微博请遵守国家法律