阅读以下说明和流程图,填补流程图中的空缺,将解答填入对应栏内。 【说明】 对于大于1的正整数n,(x+1)n可展开为Cn0xn+Cn1xn-1+Cn2xn-2+…+Cnn-1x1+Cnnx0。 下面流程图的作用是计算(x+1)n展开后的各项

admin2018-11-21  24

问题 阅读以下说明和流程图,填补流程图中的空缺,将解答填入对应栏内。
【说明】
    对于大于1的正整数n,(x+1)n可展开为Cn0xn+Cn1xn-1+Cn2xn-2+…+Cnn-1x1+Cnnx0
    下面流程图的作用是计算(x+1)n展开后的各项系数Cni(i=0,1,…,n),并依次存放在数组A[0..n]中。方法是依次计算k=2,3,…,n时(x+1)k的展开系数并存入数组A,在此过程中,对任一确定的k,利用关系式Cki=Ck-1i+Ck-1i-1,按照i递减的顺序逐步计算并将结果存储在数组A中。其中,Ck0和Ckk都为1,因此可直接设置A[0]、A[k]的值为1。
    例如,计算(x+1)3的过程如下:
    先计算(x+1)2(即k=2)的各项系数,然后计算(x+1)3(即k=3)的各项系数。
    k=2时,需要计算C20、C11和C22,并存入A[0]、A[1]和A[2],其中A[0]和A[1]的值已有,因此将C11(即A[1])和C10(即A[0])相加得到C21的值并存入A[1]。
    k=3时,需要计算C30、C31、C32和C33,先计算出C32(由C22+C21得到)并存入A[2],再计算C31(由C21+C20得到)并存入A[1]。
【流程图】

    注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为1。
    格式为:循环控制变量=初值,终值,递增值。

选项

答案(1)2,n或2,n,1 (2)A[k]或其等价形式 (3)k-1,1,一1 (4)A[i]+A[i-1]或其等价形式 (5)A[i]或其等价形式

解析 本题考查对算法流程图的理解和表示能力,这是程序员必须具备的技能。
    对k=1,2,3,…,(x+1)k的展开式系数可列出如下(杨辉三角):
    k=1时1    1
    k=2时1    2     1
    k=3时1    3     3      1
    k=4时1    4     6      4    1
    A[0]A[1]  A[2]  A[3]  A[4]…
    计算是逐行进行的,而且各行计算的结果需要保存在同一数组A中。
    杨辉三角的规律为:每行有k+1个数,依次保存在A[0:k]中。首末两数都是1。中间任一个数等于其上面一个数与左上数之和。由于采用同一数组存放各行,因此每计算出一个数存放后就会代替原来的数。这样,在同一行计算的过程中,不能从左到右计算,而应从右到左计算(按数组下标i递减的顺序)。
    流程图中,一开始对A[0]和A[1]置1,这就是k=1时的计算结果。
    接着需要对k=2,3,…,n进行循环计算,因此流程图空(1)处应填2,n或者2,n,1。
    在对第k行进行计算时,显然应首先将最右边的A[k]置1,因此空(2)处应填A[k]。
    接着应从右到左逐个计算这一行中间的各个数:A[k-1],A[k-2],…,A[1],因此,(3)处应填k-1,1,一1(即数组下标从k-1开始每次递减1直到1)。
    接着应计算A。根据杨辉三角的规律,它应等于原来的A与前一个数A[i-1]之和。因此空(4)处应填A+A[i-1],而空(5)处应填A
    当i和k双重循环结束后,A[0:n]中的结果就是(x+1)n展开后的各项系数。
转载请注明原文地址:https://jikaoti.com/ti/g8W7FFFM
0

最新回复(0)