本帖最后由 世界客都 于 2024-3-8 19:56 编辑
总 结 其实写这个题目主要呢还是想再宣传一下365函数,365函数在解决这类根据初始值及特定规则递推生成数值序列的问题上还是显得非常轻松的。 在日常生活中,有许许多多的序列,例如我们表格中常见的1,3,5,7,9....奇数序列,或者2,2,2,4,4,4,6,6,6...这种有规律的序列,很多序列都有它的用途,并不是毫无价值的。 在这道题目中,这个序列它可以联系到一定的应用背景,例如:用a,b,c三个不同的数,组合生成N位数(N=1,2,3,4......)要求:不能有2个a相邻,问这样的N位数有几个? 例如:用1,2,3三个数,组合生成一个5位数,要求不能有2个1相邻,那么符合条件的5位数一共有几个呢? 答案就是此次问题序列中的第5个数:164。 (想一想,为什么?很简单的,来点递归思维吧~~) 在解决这道题的思路上,tchh666老师跟xlllw203老师采用了365函数的解法,都非常好,tchh666老师以他的解法讲解了一下他思路,在此致以诚挚的感谢: 用{3;8}做为REDUCE的初始值X,Y为循环次数,选择24个单元格,表示计算24次(这里公式 Y 只做为循环次数,未参与计算,所以选什么单元格并不影响),Y每循环一次,则每次用TAKE(X,-2),取堆叠新的X值的最后2个, *2 再求和,24次循环结束,最后用TAKE取F1的数字所需的行。 目前WPS还未更新REDUCE以及MAP,SCAN函数,但是据可靠消息,3月底前会更新出,WPS用户届时可以更新一下版本,早日学习,早日享受365函数带来的便利。 接下来是非365解法,就是求通项公式的解法。 本人采用的方法较为复杂,这里不敢拿出讲解,意义不大,不通俗,晦涩难懂,我的预设是: =1/4/3^0.5*((1+3^0.5)^(OFFSET(A2,,,F1)+2)-(1-3^0.5)^(OFFSET(A2,,,F1)+2)) 三秋之叶老师最先给出通项公式,在此表示赞赏,同时他采用的是非常通俗易懂的方法,这令我自惭形秽,虽然他的结果比我的长,但本质是一样的。很多序列它的通项公式并不是唯一的,稍后讲解他的做法思路。 Ifan0916,海马爸爸,袁勇三位老师也给出了通项公式,同样令我敬佩不已,其中袁勇老师给出了简化的公式,非常不错,Holiday2022老师给出的是递推形式的通项公式,也非常不错 Ifan0916,海马爸爸,袁勇三位老师的通项公式我并不知道他们的具体思考过程,无法在这里给出他们的方法,比较遗憾。 下面重点讲解一下三秋之叶老师的系数法,非常的浅显易懂。 根据这个序列的递推形式,容易知道: an+2=2*(an+1+an),n=1,2,3,4....,a1=3,a2=8。 因为等比数列我们是很好求它们的通项公式的,例如: 1,3,9,27,81.... 2,4,8,16,32..... 它们的通项公式显然就是: =3n-1和=2n 就是数列第一项乘以公比的n-1次方就是等比数列的通项公式,这显然是极其浅显易懂的规律。 所以,我们想办法把 上面那个递推形式变成这种: an+2+A*an+1=B*(an+1+A*an) 形式,如果能变成这种形式,那么 an+1+A*an就是一个等比数列,公比为B,这显然对于接下来求通项公式迈出了一巨步。 那就试试: 我们对比一下系数,发现有: B-A=2,AB=2。 于是容易得到A=-1+3^0.5或-1-3^0.5 B=1+3^0.5或1-3^0.5 于是根据等比数列的性质,马上有: an+1+(-1+3^0.5)*an=(5+3*3^0.5)*(1+3^0.5)n-1 an+1+(-1-3^0.5)*an=(5-3*3^0.5)*(1-3^0.5)n-1 两个式子一减,就得出了通项公式。 通项公式得出,那么要求的复合条件的内存数组公式,也就信手拈来了。 最后,感谢上述几位老师的捧场,衷心的感谢你们,承蒙各位看得起我。 ——世界客都 2024/3/8
|