參考題:
本質上就是作用在 \(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型別...