信息安全管理作业E

n = int(input().strip())
matrix = []

# 读入数据
for _ in range(n):
    row = list(map(lambda x: list(map(float, x.split(','))), input().strip().split()))
    matrix.append(row)

# 初始化三角形模糊数的和
sum_fuzzy_number = [0, 0, 0]

# 计算所有三角形模糊数的和
for row in matrix:
    for fuzzy_number in row:
        # Add the current fuzzy number to the sum
        for i in range(3):
            sum_fuzzy_number[i] += fuzzy_number[i]
# 输出结果
# print(sum_fuzzy_number)

# 初始化行和矩阵
sum_rows = []

for row in matrix:
    sum_row = [0, 0, 0]
    for fuzzy_number in row:
        for i in range(3):
            sum_row[i] += fuzzy_number[i]
    sum_rows.append(sum_row)

# print("------")
# for sum_row in sum_rows:
#     print(sum_row)
# print("------")

# 初始化归一化和
normalized_sums = []

for sum_row in sum_rows:
    normalized_sum = [sum_row[i] / sum_fuzzy_number[2 - i] for i in range(3)]
    normalized_sums.append(normalized_sum)

# for normalized_sum in normalized_sums:
#     print(normalized_sum)

# print("------")

# 建立可能性矩阵
possibility_matrix = []

for i in range(n):
    possibility_row = []
    for j in range(n):
        a = normalized_sums[i]
        b = normalized_sums[j]
        possibility = 0.5 * max(1 - max((b[1] - a[0]) / (a[1] - a[0] + b[1] - b[0]), 0), 0) + 0.5 * max(1 - max((b[2] - a[1]) / (a[2] - a[1] + b[2] - b[1]), 0), 0)
        possibility_row.append(possibility)
    possibility_matrix.append(possibility_row)

# print(possibility_matrix)
# print("------")

# 计算模糊一致性矩阵
consistency_matrix = []

# 计算可能性矩阵的行和
possibility_row_sums = [sum(row) for row in possibility_matrix]
# print(possibility_row_sums)
# print("------")

for i in range(n):
    rij = []
    for j in range(n):
        ri = possibility_row_sums[i]
        rj = possibility_row_sums[j]
        rij.append((ri - rj) / (2 * (n - 1)) + 0.5)
    consistency_matrix.append(rij)

# print(consistency_matrix)
# print("------")

# 计算排序向量
v = [(sum(row) + n / 2 - 1)/ (n * (n - 1)) for row in consistency_matrix]

for i in range(n):
    print(format(v[i] + 0.0000001, '.5f'), end=' ')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值