1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| def SuanShu(excel,sums) : sum = 0 for i in range(len(excel[0])): sum = 0 for j in range(len(excel)): sum += excel[j][i] sums[i] = sum
for i in range(len(excel[0])): for j in range(len(excel[i])): excel[j][i] = excel[j][i] / sums[i]
for i in range(len(excel[0])): sum = 0 for j in range(len(excel[i])): sum += excel[i][j] sums[i] = sum / len(excel[i])
def CengCi(excel,sums) : sum = 1 for i in range(len(excel[0])): sum = 1 for j in range(len(excel[i])): sum *= excel[i][j] sums[i] = sum ** (1 / len(excel[i])) print(sums) sum = 0 for i in range(len(sums)): sum += sums[i] for i in range(len(sums)): sums[i] = sums[i] / sum
def TeZheng(excel,sums) : te_list = input("请输入特征值的特征向量:").split() te_list = list(map(float,te_list)) sum = 0 for i in range(len(te_list)): sum += te_list[i] for i in range(len(te_list)): te_list[i] = te_list[i] / sum sums[i] =te_list[i]
def QuanZheng(sums1,sums2,sums3,sums) :
for i in range(len(sums1)): sums.append((sums1[i] + sums2[i] + sums3[i]) / 3)
def GuiYiHua(excel,n1) : sums = [0] * len(excel[0]) for i in range(len(excel[0])): sum = 0 for j in range(n1): sum += excel[j][i] sums[i] = sum
for i in range(len(excel[0])): for j in range(n1): if sums[i] != 0: excel[j][i] = excel[j][i] / sums[i]
n = 0 max1 = 0
n = int(input("n:")) RL_list = [0,0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]
max1 = float(input("max1:")) CL = (max1 - n)/(n - 1) RL = RL_list[n] CR = (CL / RL) if CR == 0 : print(f"这是一致矩阵 CL:{CL} RL:{RL} CR:{CR}") elif CR < 0.1: print(f"满足一致性检验 CL:{CL} RL:{RL} CR:{CR}") excel = [] for i in range(n): row = map(float,list(input(f"请输入第{i+1}行:").split())) excel.append(list(row)) excel1 = []
sums1 = [0] * len(excel[0]) sums2 = [0] * len(excel[0]) sums3 = [0] * len(excel[0]) sums = [] SuanShu(excel,sums1) CengCi(excel,sums2) TeZheng(excel,sums3) QuanZheng(sums1,sums2,sums3,sums) print(f"权重1为:{sums1}") print(f"权重2为:{sums2}") print(f"权重3为:{sums3}") print(f"权重为:{sums}") n1 = int(input("n1:")) for i in range(n1): row1 = map(float,list(input(f"请输入第{i+1}行数据:").split()))
excel1.append(list(row1)) GuiYiHua(excel1,n1) print(excel1) PingJia = [] for i in range(n1): sum = 0 for j in range(n): sum = sum + (excel1[i][j] * sums[j]) PingJia.append(sum) print(f"PingJia:{PingJia}") else: print(f"不满足一致性检验 CL:{CL} RL:{RL} CR:{CR}")
|