資料結構 線性基

2022-01-10 12:56:50 字數 1066 閱讀 7398

參考題:

本質上就是作用在 \(01\) 串的高斯消元,只不過消元的途徑是異或

比如一組數(二進位制):

1010

1100

0011

建立線性基的過程是:

\(\begin

0 & 0 & 0 & 0\\

0 & 0 & 0 & 0\\

0 & 0 & 0 & 0\\

0 & 0 & 0 & 0\\

\end\)

對第乙個數:

從最高位開始掃,發現第一位就是 \(0\) ,故更新:

\(\begin

1 & 0 & 1 & 0\\

0 & 0 & 0 & 0\\

0 & 0 & 0 & 0\\

0 & 0 & 0 & 0\\

\end\)

對第二個數:

依然從最高位開始掃,發現第一位是 \(1\) ,所以第二個數要異或第一位對應的基底得到 \(0110_\) ,繼續掃,第二位是\(0\),故更新為:

\(\begin

1 & 0 & 1 & 0\\

0 & 1 & 1 & 0\\

0 & 0 & 0 & 0\\

0 & 0 & 0 & 0\\

\end\)

類似的,對第三個數,可以更新矩陣得到:

\(\begin

1 & 0 & 1 & 0\\

0 & 1 & 1 & 0\\

0 & 0 & 1 & 1\\

0 & 0 & 0 & 0\\

\end\)

可以發現上面整個過程就是通過異或來進行高斯消元

#includeusing namespace std;

typedef long long ll;

const int n=55;

ll base[n];

int main()

cout

}

資料結構 線性結構

typedef int position typedef struct lnode list struct lnode 初始化 list makeempty 查詢 define error 1 position find list l,elementtype x 插入 bool insert lis...

資料結構 線性結構

線性表基本操作有 1 list makeempty 初始化乙個新的線性表 2 elementtype findkth list l,int i 根據指定的位序i,返回l中相應元素ai i是下標 3 position find list l,elementtype x 已知x,返回線性表l中與x相同的...

線性資料結構

一般將資料結構分為兩在類 線性資料結構和非線性資料結構。線性資料結構有線性表 棧 佇列 串 陣列和檔案 非線性資料結構有樹和圖。線性表 一 arraylist 1 arraylist底層採用陣列實現,當使用不帶引數的構造方法生成arraylist物件時,實際上會在底層生成長度為10的object型別...