在 中利用excel验算了一组自然数幂求和公式。本期验算另一形式的自然数幂求和公式——组合数表示自然数幂求和公式,通过验算过程说明几个Excel函数的应用。
一、自然数幂求和公式
自然数幂求和,即计算形如。
用组合数表示如下:
用组合数表示自然数幂求和公式的详细计算过程及相关公式见自然数幂求和-计算量风暴(二),这里不再赘述,直接使用公式。
二、计算,制作列表。
COMBIN函数
作用:返回从给定元素数目的集合中提取若干元素的组合数。
语法:COMBIN(number,number_chosen)。
参数 number 项目的数量,必需参数。
number_chosen 提取的项目数量,必需参数。
前几项展开式为:
- 方法一:按照公式直接键入。
A列作为辅助列,填充序列。
单元格B111填入:=COMBIN(A111+1,0)
单元格C111填入:=POWER(2,A111)*COMBIN(A111+1,0)-COMBIN(A111+1,1)
单元格D111填入:=POWER(3,A111)*COMBIN(A111+1,0)-POWER(2,A111)*COMBIN(A111+1,1)+COMBIN(A111+1,2)
单元格E111填入:=POWER(4,A111)*COMBIN(A111+1,0)-POWER(3,A111)*COMBIN(A111+1,1)+POWER(2,A111)*COMBIN(A111+1,2)-COMBIN(A111+1,3)
111行依次按照公式填入。选中单元格区域,按键Ctrl+D,填充。
方法可用。额。。。。。。[吐血],这才填入4项,公式也忒长了,后面的更长。吐了。
- 方法二:构造中间数值表
仔细观察, 是由若干个指数函数和组合数的积相加(减)所得。
在每一个公式中,指数函数的底数是递减的,组合数的上标是递增的。
第一步,计算组合数部分数值列表。
A列、130行作为辅助行列。130行为 i 值,A列为 k 值。
填充序列,篇幅有限,填充到15(可以满足主题:验算自然数幂求和公式)。
单元格B131填入:=COMBIN($A131+1,B$130-1)*POWER(-1,B$130-1)。
(绝对引用行利用符号$固定行,绝对引用列利用符号$固定列,利用快捷键F4切换模式。)
选中单元格区域B131:P145,按键Ctrl+R,按键Ctrl+D,单元格区域B131:P145会自动填充。
生成列表有多余的数据,且右上部分报错(由于组合数上标大于下标导致)。
利用IF函数进行筛选有用数据。由于数字量大,页面有限,以下只生成 数值列表。
IF函数
作用:判断一个条件是否满足:如果满足返回一个值,如果不满足则返回另外一个值。
语法:IF(logical_test,value_if_true,value_if_false)。
各参数如下:
logical_test 表示计算结果为 TRUE 或 FALSE 的任意值或表达式。
value_if_true 表示 logical_test 为 TRUE 时返回的值。
value_if_false 表示 logical_test 为 FALSE 时返回的值。
单元格B131填入:=IF($A131>=B$130,COMBIN($A131+1,B$130-1)*POWER(-1,B$130-1),"0")。选中单元格区域,按键Ctrl+R,再按键Ctrl+D,会自动填充。
第二步,计算指数部分数值列表
A列、145行作为辅助行列。145行为 i 值,A列为 k 值。填充序列,填充到10。
设定a值,此时a=11。
单元格B146填入:=POWER($H$144-B$145,$A146)。
选中单元格区域B146:K155,按键Ctrl+R,再按键Ctrl+D,单元格区域会自动填充。
第三步,计算 数值列表
a=1时,计算。引用组合数数值表B列,指数数值表K列(颜色加亮部分)。将两个数值表内对应位置(同样的k值)的数值相乘后输出。
a=2时,计算。两个数值表内内均引用2列。引用组合数数值表B、C列,指数数值表O、P列(颜色加亮部分)。将两个数值表内对应位置(同样的k值)的数值相乘后再相加,输出。
a=3时,计算。两个数值表内均引用3列。引用组合数部分数值表B、C、D列,指数部分数值表N、O、P列(颜色加亮部分)。将两个数值表内对应位置(同样的k值)的数值相乘后再相加,输出。
同样地,计算,两个数值表内均引用a列。将两个数值表内对应位置(同样的k值)的数值相乘后再相加,输出。随着a的增大,引用的数值越多。
对于不同的a值,引用区域不同。引用部分相对于整体数值表的偏移量不同。
OFFSET函数
作用:以指定的引用为参照系,通过给定偏移量、行数及列数返回一个新的引用。
语法:OFFSET(reference,rows,cols,height,width)
各参数如下:
参数Reference:作为偏移量参照系的引用区域。Reference须为单元格或相连单元格区域。
参数Rows:相对于偏移量参照系的左上角单元格,上(下)偏移的行数。
参数Cols: 相对于偏移量参照系的左上角单元格,左(右)偏移的列数。可为正数(代表在起始引用的右边)或负数(代表在起始引用的左边)。
参数Height:高度,要返回的引用区域的行数。
参数Height:宽度,要返回的引用区域的列数。
说明:返回的引用可以为一个单元格或单元格区域。
OFFSET函数只是返回一个引用 ,实际上并不更改选定区域。
确定了引用区域后,利用SUMPRODUCT函数将引用内数值相乘后再相加,输出。
SUMPRODUCT函数
作用:在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。
语法:SUMPRODUCT(array1, [array2], [array3], ...)
参数 array1 必需。需要进行相乘并求和的第一个数组。
参数 array2, array3... 可选。其相应元素需要进行相乘并求和。
A列、160行作为辅助行列。160行为 a 值,A列为 k 值。填充序列,填充到10。
单元格B161填入:=SUMPRODUCT(OFFSET($B$131:$K$140,$A161-1,0,1,B$160),OFFSET($B$146:$K$155,$A161-1,10-B$160,1,B$160))。
选中单元格区域B161:K170,按键Ctrl+R,再按键Ctrl+D,单元格区域会自动填充。
生成列表的右上部分为多余的数据(可暂时不去处理)。
可以利用IF函数判定数据是否需要输出。将单元格B161原有的公式作为IF函数判定条件为TURE是返回的值。
单元格B161填入:=IF(ROW(B161)-160>=COLUMN()-1,SUMPRODUCT(OFFSET($B$131:$K$140,$A161-1,0,1,B$160),OFFSET($B$146:$K$155,$A161-1,10-B$160,1,B$160)),"0")
过程较繁杂,分上下两部分吧。敬请见谅。