数组结构
-
线性表
-
数组
-
矩阵
-
矩阵相加
-
矩阵相乘
-
矩阵转置
-
稀疏矩阵
-
上三角矩阵
-
以行为主
k = n ∗ ( i − 1 ) − i ( i − 1 ) / 2 + j k = n * (i-1) - i(i-1)/2 + j k=n∗(i−1)−i(i−1)/2+j -
以列为主
k = j ( j − 1 ) / 2 + i k=j(j-1)/2 + i k=j(j−1)/2+i
- 右上三角矩阵
- 左上三角矩阵
-
-
下三角矩阵
-
以行为主
k = i ( i − 1 ) / 2 + j k = i(i-1)/2 + j k=i(i−1)/2+j -
以列为主
k = n ∗ ( j − 1 ) + i − j ( j − 1 ) / 2 k = n * (j-1) + i - j(j -1) /2 k=n∗(j−1)+i−j(j−1)/2 -
右下三角矩阵
-
左下三角矩阵
-
-
带状矩阵
-
-
数组与多项式
设计一个python程序,进行多项式的计算:A(x) = 3x^4 + 7x^3 + 6x +2和B(x) = x^4 +5x^3 + 2x^2 + 9的加法运算
一个多项式如果使用数组结构存储在计算机中,有一下两种方法表示:
-
使用一个n+2长度的一组数组来存放,数组的第一个位置存储最大指数n项的系数,其他位置按照指数n递减,按序存储对应项的系数:P=(n,an,an-1,…,a1,a0),存储在A(1:n+2)中,例如:
P(x) = 2x^5 + 3x^4 + 5x^2 + 4x + 1可以转换为A数组来表示,例如A=[5,2,3,0,5,4,1]。
-
只存储多项式中的非零项。如果有m项非零项,就使用2m+1的数组来存储每一个非零项的指数和系数,数组的第一个元素为此多项式非零项的个数。
P(x) = 2x^5 + 3x^4 + 5x^2 + 4x + 1可以表示为A(1:2m+1)数组,例如:
A=[5,2,5,3,4,5,2,4,1,1,0]
-
采用第一种多项式的方法进行上述题目的运算
""" A(x) = 3x^4 + 7x^3 + 6x + 2 和 B(x) = x^4 + 5x^3 + 2x^2 + 9的加法运算 """ ITEMS = 6 """ poly:表示多项式的数组 items:数组的长度 """ def PrintPoly(Poly,items): #最高指数 MaxExp = Poly[0] for i in range(1,Poly[0] + 2): MaxExp =MaxExp - 1 if Poly[i] != 0: if(MaxExp + 1) != 0: print(' %dx^%d ' %(Poly[i],MaxExp + 1),end='') else: print(' %d' %Poly[i],end='') if MaxExp >= 0: print('+',end='') print() """ Poly1:多项式1 Poly2:多项式2 """ def PolySum(Poly1,Poly2): result = [None] * ITEMS result[0] = Poly1[0] for i in range(1,Poly1[0] + 2): result[i] = Poly1[i] + Poly2[i] PrintPoly(result,ITEMS) PolyA = [4,3,7,0,6,2] PolyB = [4,1,5,2,0,9] print("多项式A=>",end='') PrintPoly(PolyA,ITEMS) print("多项式B=>",end='') PrintPoly(PolyB,ITEMS) print("A+B=>",end='') PolySum(PolyA,PolyB)
-