编辑代码

# 定义判断矩阵
A = [
    [1, 1/3, 1/2, 2],
    [3, 1, 3, 4],
    [2, 1/3, 1, 3],
    [1/2, 1/4, 1/3, 1]
]

# 步骤一:将判断矩阵每一列归一化
col_sums = [sum([A[i][j] for i in range(4)]) for j in range(4)]
norm_A = [[A[i][j] / col_sums[j] for j in range(4)] for i in range(4)]

# 步骤二:将归一化后的矩阵按行求和
sum_row = [sum(norm_A[i]) for i in range(4)]

# 步骤三:将 sum_row 归一化得到权重向量 w
total_sum_row = sum(sum_row)
w = [sum_row[i] / total_sum_row for i in range(4)]

# 步骤四:计算最大特征值 λ_max
Aw = [sum([A[i][j] * w[j] for j in range(4)]) for i in range(4)]
lambda_max = sum([Aw[i] / (4 * w[i]) for i in range(4)])

# 步骤五:计算一致性指标 CI
n = 4
CI = (lambda_max - n) / (n - 1)

# 步骤六:平均随机一致性指标 RI(n=4时RI=0.90)
RI = 0.90

# 步骤七:计算一致性比率 CR
CR = CI / RI

print("权重向量 w:", w)
print("最大特征值 λ_max:", lambda_max)
print("一致性指标 CI:", CI)
print("一致性比率 CR:", CR)
if CR < 0.1:
    print("判断矩阵通过一致性检验,权重向量合理。")
else:
    print("判断矩阵未通过一致性检验,需要调整。")