利用矩陣判斷傳遞性(二元關係,離散數學)

2021-08-16 14:58:28 字數 1074 閱讀 7343

參考**:

方法一:利用(復合矩陣法)(矩陣乘法)(之前學的線性代數終於用上了

思路:設m是r的關係矩陣,若m*m為m的子集,則r具有傳遞性。

判斷方法:計算m*m,m*m為m的子集的意思是,在方陣對應的同行同列的位置,若對於m,該數為0,則對於m*m,該數必為零,否則r不具有傳遞性。即:若m中的a[i][j] == 0, 則必有m*m中的c[i][j] == 0

**如下:

#include using namespace std;

const int maxn = 100;

int a[maxn][maxn], c[maxn][maxn];

int main()

for (i = 0; i < n; i++)

}} cout << endl;

for (i = 0; i < n; i++)

cout << endl;

} cout << endl;

for (i = 0; i < n; i++)

}} }

cout << "transitivity!\n";

return 0;

}

方法二:中途點判別法

參考**:

思路:利用矩陣表示方法,遍歷這個矩陣如果遇到乙個等於1的位置,記錄位置,利用其縱座標當下乙個數的橫座標,在此橫座標下找到是1的位置,記錄這個位置,在利用上乙個數字置的橫座標和這個數的縱座標找到乙個新的位置,如果這個位置上是1,那麼這個數就具有可傳遞性,然後繼續遍歷進行這個迴圈操作,知道檢查到所有的數都對上了,這個二元關係才可說具有可傳遞性,有乙個不符的都不是可傳遞性的二元關係。

**如下:

#include using namespace std;  

const int maxn = 100;

int a[maxn][maxn];

int main()

} }

} }

if(p)

cout<

else

cout<

}

離散數學 二元關係

關係的逆運算 關係的性質 等價關係 擬序關係 偏序關係 最大元 最小元 極大元 極小元 上下界 上下確界 全序關係 良序關係 a與b的笛卡爾積的任意子集都是從a到b的乙個關係 集合表示法 關係圖表示法 關係矩陣表示法 設r是a到b的關係,則b到a的關係r的逆表示把r的前域和後域互換。r的逆關係的布林...

離散數學判斷集合的二元關係(相容 偏序 等價)

第一次在csdn上寫文章,直接上 了,這個題目也不難,各個函式都非常的容易理解。略顯智障的函式名 include include int relation matrix 15 15 tmp 15 15 int r size,r num typedef int status status zifan ...

大二(上)離散數學 集合的二元關係

include include using namespace std const int max 100 int num int rnum int r max max int a max max void warshall warshall演算法 for int i 1 i num i 對所有j如...