未知:数列1——题解

来源:互联网 发布:淘宝退货怎么寄件 编辑:程序博客网 时间:2024/06/06 17:13

题目描述:
从前有一个数列:
{X0=1;
{Xn=AX(n-1)+B;
小x想知道当n变得无穷大的时候,abs(Xn)是否会变成无穷大。

输入:
有若干行,每行表示一个测试数据。每行有两个整数A,B,其中a=A/1e9,b=B/1e9。

输出:
与输入行数一致,每行包含小写的yes或no,其中yes表示Xn无穷大,反之亦然。

样例输入
0 1
2000000000 1

样例输出
no
yes

————————
并不贴代码(因为这是纯数学题,代码都是次要的)
首先经过类比推导出:
Xn=a^n+b((a^n-1)+(a^n-2)+…+a^0);①
①(保证一切合法)通过等比数列转换得到
Xn=a^n+b((a^n)-1)/(a-1);②
②(保证一切合法)通分得到
Xn=(a+b-1)((a^n)-1)/(a-1)+1;③
观察①不难发现当b=0且a=1时不成立。
但是当b!=0的时候a=1成立。
观察③也不难发现a+b-1=0时不成立。
观察任意式子发现当-1<=a<1时不成立(原理:分数的平方会使得数字越来越小,将会趋近无穷小)。

对代码仅需要注意一点。
不要按照题面说的将AB除1e9,就算你开double也过不了。