リニアの両方のために、すなわちスペース\(V_1、V_2 \) 、そのクロスを見つける\(V_1 \キャップV_2 \を)
まず、2本のクロス線状または線形空間は明らかにスペースです
補題:場合\(V_1、V_2 \)は、線形空間である\(B_1、B_2 \)は、そのベースに設定され、その結果、\(= WがB_2 \ CAP V_1 \である)、場合\(B_1 \カップ(B2 \ setminus W)\)線形独立、その後\(Wは\)である\(V_1 \キャップV_2が\)ベースのセットの。
証明:任意検討\(V_1 \ CAP V_2 \におけるV \)を、そう\(V \)を同時にすることができる\(B_1 \)と\(B_2 \)が示されています。証明する方法を考えてみましょう\を(V \)かもしれ\(W \)線形表現。私たちは、その後でないと仮定\(V \)をする必要があります\(S \)と\(T \)共直線、\(WでS \、T \ B_2 \でW \ setminus) 、および\( T \)が空ではありません。したがって、この時間\(T \)必ずしも\(B_1 \)私たちの仮定と矛盾関連する線形、。したがって、上記の仮定が有効です
しかし、\(B_1 \カップ(B_2 \ setminus W)\) の可能な線形相関が、その後、私たちは可能ベースのセットを変更したいです。
現在の要素として追加した場合\(X \) 、場合\(Xが\)することができない\(B_1 \カップB'_2は\)を直接表す(B_2「\)\添加した\(X \)に;そうでなければ\(X \)しなければならない(B_1 \カップ(B_2 '\ \ setminus W)\) 前記セットのうちの正確に1つのサブセット\(X = \テキスト{XOR (S)\ ^ XOR(T)} \) 、ここで\(S \のsubseteq B_1、T \ subseteq B_2 '\ Wはsetminusある\)で\(B_2' \)に添加した(\ \テキスト{XOR(S )} \) に、このときの\ (W \でS \)で\(W \)にも参加し\(S \)をします
全体的な複雑性\(O(D ^ 2)\) 、\(D \)の寸法であります
#define int unsigned int
Base merge(Base a,Base b){
Base na(a),tmp(a),gl;
int cur,d;
fp(i,0,31)if(b[i]){
cur=0,d=b[i];
fd(j,i,0)if(d>>j&1){
if(tmp[j]){
d^=tmp[j],cur^=na[j];
if(d)continue;
gl[i]=cur;
}else tmp[j]=d,na[j]=cur;
break;
}
}
return gl;
}