Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LR2 (1)

.py
Скачиваний:
0
Добавлен:
07.07.2024
Размер:
5 Кб
Скачать
import numpy as np
def RezMas(Mas):
    Mas[int(ex1[i], 16) % 10] += 1
    Mas[int(ex2[i], 16) % 10] += 1
    Mas[int(ex3[i], 16) % 10] += 1
    Mas[int(ex4[i], 16) % 10] += 1
    Mas[int(ex5[i], 16) % 10] += 1
def sumQR(mas1,mas2,mas3,mas4,mas5):
    P=Q=0
    print("Мнение каких экспертов учитывать ?")
    p1 = int(input("p1="))
    p2 = int(input("p2="))
    res = np.concatenate(([mas1], [mas2], [mas3], [mas4], [mas5]), axis=0)
    k = 0
    for k in range(4):
        for j in range(1, 5):
            cnt = 0
            if j > k and( res[p1 - 1][k] < res[p1 - 1][j] or  res[p1 - 1][k] > res[p1 - 1][j]):
                cnt += 1
            if j > k and (res[p2 - 1][k] < res[p2 - 1][j] or  res[p1 - 1][k] > res[p1 - 1][j]):
                cnt += 1
            if cnt == 2:
                P += 1
            if cnt != 2 and j > k:
                Q -= 1
    rK = round((P + Q) / (0.5 * 5* 4),2)
    print("Коэффициент Кендалла\t rK = (P + Q) / (0.5 * n * (n-1))=", rK)
ex1 = ["a", ">", "b", ">", "c", ">", "d", ">", "e"]
ex2 = ["a", "~", "c", ">", "e", ">", "d", ">", "b"]
ex3 = ["a", "~", "b", "~", "c", ">", "e", ">", "d"]
ex4 = ["d", ">", "c", ">", "e", ">", "a", ">", "b"]
ex5 = ["b", ">", "c", ">", "d", ">", "e", ">", "a"]
for n in range(1):
    print("\nИтерация №", n+1)
    ex1R = [0] * 5
    ex2R = [0] * 5
    ex3R = [0] * 5
    ex4R = [0] * 5
    ex5R = [0] * 5
    res1 = [0] * 5
    res2 = [0] * 5
    res3 = [0] * 5
    res4 = [0] * 5
    res5 = [0] * 5
    for i in range(0, len(ex1), 2):
        if i == 0:
            ex1R[int(ex1[i], 16) % 10] += 1
            ex2R[int(ex2[i], 16) % 10] += 1
            ex3R[int(ex3[i], 16) % 10] += 1
            ex4R[int(ex4[i], 16) % 10] += 1
            ex5R[int(ex5[i], 16) % 10] += 1
            RezMas(res1)
        if i == 2:
            ex1R[int(ex1[i], 16) % 10] += 2
            ex2R[int(ex2[i], 16) % 10] += 2
            ex3R[int(ex3[i], 16) % 10] += 2
            ex4R[int(ex4[i], 16) % 10] += 2
            ex5R[int(ex5[i], 16) % 10] += 2
            RezMas(res2)
        if i == 4:
            ex1R[int(ex1[i], 16) % 10] += 3
            ex2R[int(ex2[i], 16) % 10] += 3
            ex3R[int(ex3[i], 16) % 10] += 3
            ex4R[int(ex4[i], 16) % 10] += 3
            ex5R[int(ex5[i], 16) % 10] += 3
            RezMas(res3)
        if i == 6:
            ex1R[int(ex1[i], 16) % 10] += 4
            ex2R[int(ex2[i], 16) % 10] += 4
            ex3R[int(ex3[i], 16) % 10] += 4
            ex4R[int(ex4[i], 16) % 10] += 4
            ex5R[int(ex5[i], 16) % 10] += 4
            RezMas(res4)
        if i == 8:
            ex1R[int(ex1[i], 16) % 10] += 5
            ex2R[int(ex2[i], 16) % 10] += 5
            ex3R[int(ex3[i], 16) % 10] += 5
            ex4R[int(ex4[i], 16) % 10] += 5
            ex5R[int(ex5[i], 16) % 10] += 5
            RezMas(res5)
    REZ = [ex1R[i] + ex2R[i] + ex3R[i] + ex4R[i] + ex5R[i] for i in range(5)]
    REZsort = [ex1R[i] + ex2R[i] + ex3R[i] + ex4R[i] + ex5R[i] for i in range(5)]
    REZsort.sort()
    print("--------------------------------------------------")
    print("Экспертные ранжирования", '|', 'a', 'b', 'c', 'd', 'e')
    print("--------------------------------------------------")
    print("\t", *ex1, "|", *ex1R, sep=" ")
    print("\t", *ex2, "|", *ex2R, sep=" ")
    print("\t", *ex3, "|", *ex3R, sep=" ")
    print("\t", *ex4, "|", *ex4R, sep=" ")
    print("\t", *ex5, "|", *ex5R, sep=" ")
    print("---------------------------------------------------")
    print("\t\t\tСумма\t  ", "|", *REZ, sep=" ")
    print()
    print("Итоговое ранжирование ---", end=" ")
    for i in range(len(REZsort)):
        for j in range(len(REZ)):
            if REZsort[i] == REZ[j]:
                print(">",hex(j + 10)[2:], end=' ')
    print()
    print()
    sumQR(ex1R, ex2R, ex3R, ex4R, ex5R)
    if n==0:
        ex1 = ["c", ">", "b", ">", "a", ">", "d", ">", "e"]
        ex2 = ["c", ">", "e", ">", "b", ">", "a", ">", "d"]
        ex3 = ["c", ">", "b", ">", "e", ">", "a", ">", "d"]
        ex4 = ["b", ">", "c", ">", "a", ">", "e", ">", "d"]
        ex5 = ["d", ">", "c", ">", "b", ">", "e", ">", "a"]
    if n==1:
        ex1 = ["d", ">", "a", ">", "b", ">", "c", ">", "e"]
        ex2 = ["d", ">", "e", ">", "a", ">", "b", ">", "c"]
        ex3 = ["d", ">", "a", ">", "e", ">", "b", ">", "c"]
        ex4 = ["a", ">", "d", ">", "b", ">", "e", ">", "c"]
        ex5 = ["d", ">", "c", ">", "a", ">", "e", ">", "b"]