首页 > 其他 > 详细

线性基

时间:2019-03-23 21:23:19      阅读:165      评论:0      收藏:0      [点我收藏+]

向量空间中可以组合出整个空间的项的最小数叫做这个线性空间的维数,而所有的项作为该线性空间的一个基底,简称基。

线性基是一种特殊的基底,对应异或空间的基底,即使用基底相互异或可以得到整个空间

求几个数的线性基可以用高斯消元求解,将每个数二进制展开后,类比于求向量空间的基底,只是将加法换为不进位加法异或

for(int i=1;i<=n;++i)
{
    for(int j=i;j<=n;++j)
    if(a[j]>a[i]) swap(a[i],a[j]);
    
    if(!a[i]) break;//消元完成后
    b[++cnt]=a[i];
    for(int k=50;k;--k)
    {
        
        if(a[i]>>k&1)//用第一个有1的位来消元 
        {
            for(int j=1;j<=n;++j)
            {
                if(i!=j&&(a[j]>>k&1)) a[j]^=a[i];
            }
                break;
        }
    }
}

线性基

原文:https://www.cnblogs.com/Chtholly/p/10585630.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!