zoukankan      html  css  js  c++  java
  • 二进制方法 解 集合的幂集

    离散数学的一道作业题目,求集合的幂集。

    代码如下(摘自网络,自己修改)

    int i,j,k,t,y,sum;
        int a[8]=0;  // 二进制数组有点投机取巧
        SetElem *pAElem;
        SetElem *pBElem;
        pAElem = outToBuffer(pA);//pA输出缓存区
        pFamilyOfSet pFamSet;
        pFamSet = createNullFamilyOfSet();//创建空集族
        for(i=0,pBElem=pAElem;*pBElem != '\n';++pBElem) //元素个数
            i++;
        for(j=i,sum=1;j>0;j--) //幂集总数
            sum=sum*2;
        for(k=1;k<=sum;k++)
        {       
            pSet pC = createNullSet(); //创建子集pC
            for(j=0;j<i;j++)
            {  
                if(a[j]!=0)
                { 
                    pBElem=pAElem;
                   for(y=0;y<j;y++)//添加对应的元素
                        pBElem++;
                   directInsertSetElem(pC,*pBElem);//插入元素
                  }
            }
            insertToFamilyOfSet(pFamSet,pC);//插入子集
            for(t=i-1;t>=0;t--)
            {
                if(a[t]==0)
                    {
                        a[t]=1;
                        break;
                    }
                else
                    a[t]=0;   
            }
        }
        return pFamSet;

  • 相关阅读:
    nethogs 实时查看进程使用流量情况。
    Bash 使用技巧
    Linux源代码编译安装tree命令
    【字体区别】Serif和Sans Serif
    MySQL数据库恢复的经历。
    Linux常用命令
    关于一机多区的可行性分析。
    记一次node节点异常排查
    kube-prometheus部署
    认证、授权与准入控制
  • 原文地址:https://www.cnblogs.com/ss815367696/p/2830316.html
Copyright © 2011-2022 走看看