本帖最后由 世界客都 于 2024-6-28 00:07 编辑
引 言
本文所写的内容为EXCEL常见序列号的延伸,大家可以稍作了解,不要求掌握。但如您对序列号有兴趣的话,可以认真阅读全文并尝试完成最后的练习题,收获将会颇丰。
本文(含习题)为世界客都原创内容,如需转载,请注明出处,首发于EXCELHOME论坛。
前 言
在EXCEL中,平时需要用到各种各样的序列号,例如:1,1,2,2,3,3.......或者1,2,3,1,2,3,1,2,3.....等等。这些序列号的公式比较简单,论坛也有非常多的帖子可以学习,大家都能很轻易的写出公式来。
其实在常见的序列号公式中,简单或是复杂的序列号,本质上还是INT函数的使用。例如上述生成1,2,3,1,2,3,1,2,3........序列号的公式是:=MOD(ROW(A3),3)+1,其实其等价公式是:=ROW(A4)-3*INT(ROW(A3)/3)
当然,没人会进行以上函数的书写,一来是长,二来是复杂。
我只是想借此说明INT函数在常见序列号中占据着重要地位。
INT函数有着非常多精妙且复杂的应用,在这个帖子中,我只是介绍它在序列号中的应用。
本文的内容分4个部分:
第一部分简单介绍一下有规律的序列号的函数公式是怎么得来的;
第二部分简单介绍一下无规律的序列号的函数公式是怎么得来的;
第三部分简单证明一下序列号公式等价的问题;
第四部分是简单序列题目。
本文所列举的序列号都是简单的,可以通过简单计算得来的。至于那些卡特兰数序列呀,斐波那契序列呀,Kolakoski序列,心电图序列等等序列,将不会做介绍,虽然这些序列号很重要,但是因为这些序列号知名度已经很高,相关介绍已很多了,我认为没有介绍的必要。
还有一类是根据递推式求序列号的,我认为也没必要介绍它的方法。因为根据递推式求通项公式本身在EXCEL中就不是一个必选项。
我举个例子:
现在要生成一个序列号,第一项是1,以后的每一项都是上一项的3倍加2。下图提供了2个公式:
很明显,第一个公式非常容易写出来,可以说是毫不费力就能写出。
第二个公式你要写出来就不是那么容易了,需要动动笔才能得到。就算它比第一个公式要短,但是它的计算量更大,也不方便维护,实际应用中,不会被采用。况且根据递推式计算通项公式的方法比较多,不统一,有些甚至很复杂,那么采用这种方式写序列号公式,无疑是舍近求远!
所以,一般来说,在EXCEL中遇到这种根据递推式求公式的,按照递推式直接写就好了,简简单单。
最后,序列号千千万,各种各样的都有,本文不可能全部介绍完。
下面我给大家推荐一个网址,绝大多数序列号都能在这个网站找到。这个网站就是:oeis.org
以下是网站首页
大家在红圈输入你想查找的序列号(例如:1,1,2,3,5,8,13,21),就可以了。输入名字也可以,例如你想找斐波那契数列,输入Fibonacci 点击Search即可,或者输入A000045(A45也可以)点击Search同样可以查询到。
然后你下拉到FORMULA这里,如下图所示:
红圈部分就是这个序列号的通项公式,你照着这个公式就可以在EXCEL中写出相对应的函数公式来。
这里我简单讲解一下通项公式上面那个写着G.f.后面有一个公式的部分(如上图所示:G.f. :x/(1-x-x^2)),这部分不是序列号的通项公式,它只是这个序列号的生成函数(Generating Function)。生成函数主要用来计数,当然在序列号处理方面也有它的独到之处。生成函数有它的一些有趣应用,比方说,我利用生成函数可以找到一些分数,它的结果是有点意思的,我简单给大家找了4个(还有很多):
1/49=0.0204081632.....(等比数列构成)
100/8991=0.0111222333444555.....(按3位递增序列构成)
100/9899=0.01010203050813213455......(斐波那契序列构成)
100/9801=0.01020304050607080910111213141516171819......(自然数序列构成)
有兴趣的朋友可以去了解一下哈,我在这里不再过多介绍了。
最后,请大家先认真阅读第一到第三部分,然后去完成第四部分的习题吧。
祝各位阅读愉快,做题愉快。
|