Доказать отношение эквивалентности множества

adilamir

Новичок
Пользователь
Апр 28, 2020
11
0
1
Пусть R – бинарное отношение заданное на парах натуральных чисел такое, что (n, m)R(k, s), если n·s = m·k. Доказать, что R – отношение эквивалентности.
Отношение эквивалентности осуществляется, когда отношение обладает свойствами рефлексивности, симметричности и транзитивности.

Python:
import operator

def get_rel_matr(A, R):
    lis = sorted( list(A) )
    matr = []
    for i in range( len(lis) ):
        row = []
        for j in range( len(lis) ):
            row.append( R( lis[i], lis[j] ) )
        matr.append(row)
    return matr

def is_refl(matr):
    for x in range( len(matr) ):
        if not matr[x][x]:
            return False
    return True


def is_symm(matr):
    for x in range( len(matr) ):
        for y in range( x, len(matr) ):
            if not matr[x][y] == matr[y][x]:
                return False
    return True


def is_transitive(matr):
    for x in range( len(matr) ):
        for y in range( len(matr) ):
            for z in range(len(matr)):
                if matr[x][y] and matr[y][z]:
                    if not matr[x][z]:
                        return False
    return True

def get_rel_prop(matr):
    res = ['Отношение обладает следующими свойствами:']
    res.append( ' рефлексивность,'    if is_refl(matr)          else '' )
    res.append(' симметричность,'     if is_symm(matr)          else '' )
    res.append(' транзитивность,'     if is_transitive(matr)    else '' )
    s = ''.join( res )
    if s[-1] == ',':
        s = s[:-1] + '.'
    return s
 

Форум IT Специалистов