2.2 数列
数列是按照某种顺序排列的一组数,其在计算机科学中的应用非常广泛,如在程序设计[4]、数据结构[5]的学习、使用过程中,经常遇到线性结构中的数组、列表、字符串等结构,它们都可以理解成数列。
2.2.1 数列的概念
1.数列
定义2-17 按照一定顺序排列的一组数称为数列。
按照函数定义的方式,数列也可以理解成以正整数集合(或它的有限子集)为定义域的函数。
数列一般表示为,记作
。如{1,2,3,4,…,n,…}{2,4,6,8,…,2n}{2,4,6,8,10,12,14,16,18,20}都是数列。
可以利用Python中的列表表示数列,假设需要表示由不超过自然数20的偶数构成的数列,可以通过如下定义完成:
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_246.jpg?sign=1738801218-B0uBXksFLFzLSoYleb1SO9CQJAsmhp80-0-242d4caaa1b30be887dcfa078d5f463e)
或者
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_247.jpg?sign=1738801218-sGGpA5TgmwUskwyyb2yeZ0SDo9uZSwRI-0-38f84809fb3be3144355cb821490fe6b)
2.数列的相关概念
定义2-18 数列中的每个元素称为该数列的项。数列的第一个项称为首项。对于数列,
为首项,
为第
项。
数列的通项公式:如果数列的第
项
与正整数
的关系能用一个公式来表示,那么将这个公式称为数列的通项公式。
例2-5 数列{2,4,6,8,…,2n}的通项公式为,利用Python实现该数列的表示方法,假设n=10,则程序如下:
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_257.jpg?sign=1738801218-Hi15hR8k5UQtkEIE6163hV05oDUeISuZ-0-90ea84f75dde45fc4874eaa3969da07f)
输出结果如下:
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_258.jpg?sign=1738801218-sPLJp7ZQrtNAg08kGLDzP4fp21awUHsh-0-797086e9f0d544d3a59163aa55c761f5)
2.2.2 数列的分类
数列可以按照不同的方式进行划分。
1.按照数列的项数划分
(1)有穷数列:数列中的项是有限的,如{1,2,3,4,5,6,7,8,9,10}{2,4,6,8,…,2n}都是有穷数列。
(2)无穷数列:数列中的项是无限的,如{1,2,3,4,…,n,…}是无穷数列。
2.按照数列项之间的大小关系划分
(1)递增数列:从数列的第二项起,每项都大于其相邻的前一项,这样的数列称为递增数列,如{1,5,10,11,15,26,37,48,59,100}{2,4,6,8,…,2n}(n为正整数,n≥5)都是递增数列。
(2)递减数列:从数列的第二项起,每项都小于其相邻的前一项,这样的数列称为递减数列,如{100,59,48,37,26,15,11,10,5,1}{2n,2n-2,2n-4,…,8,6,4,2}(n为正整数,n≥5)都是递减数列。
(3)常数数列:数列的每项都是一个相同的数值,这样的数列称为常数数列,简称常数列。
3.按照数列项之间的变化规律划分
(1)等差数列:从数列的第二项起,每项与其相邻的前一项的差等于同一个常数,这样的数列称为等差数列。其中,后一项与前一项的差称为公差(用来表示),如{1,4,7,10,13,…,3n+1,…}(n=0,1,2,3,…),{2,4,6,8,…,2n}(n为正整数,n≥5)都是等差数列。
等差数列的通项公式:,其中,n为项数,
为公差。
等差数列的前n项和公式:,其中,n为项数。
(2)等比数列:从数列的第二项起,每项与其相邻的前一项的比等于同一个常数,这样的数列称为等比数列。其中,后一项与前一项的比值称为公比(用来表示)。如{1,3,9,27,…3n,…}(n=0,1,2,3,…)是等比数列。
等比数列的通项公式:,其中,
,
为公比。
等比数列的前n项和公式:,其中,
。
2.2.3 综合案例及应用
例2-6 利用Python程序实现对一个数列中的元素进行升序排序。
利用冒泡排序法对数列中的元素进行升序排序,对该算法的分析如下。
(1)通过Python创建一个列表,用来表示数列。
(2)利用循环嵌套进行升序排序,此过程主要是比较相邻元素,若前者比后者大,则两者调换位置。
(3)持续这个过程,直到最后一个元素为止。
(4)输出结果。
对上述算法步骤的程序实现如下:
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_269.jpg?sign=1738801218-NiQaZAkUhtOR6Rqov6ujc2VwhJkG3C3M-0-e2971b8e48462f47a1dab3c25f87e32c)
输出结果如下:
![img](https://epubservercos.yuewen.com/10291D/20266983808220206/epubprivate/OEBPS/Images/txt002_270.jpg?sign=1738801218-JO6QLivdwgnRNlmWRLvntQvmP2zHtLuU-0-fe5c1ed0239f372a4d24e275ce754ad2)