广工离散anyview上机.docx

上传人:b****6 文档编号:8263119 上传时间:2023-01-30 格式:DOCX 页数:25 大小:19.68KB
下载 相关 举报
广工离散anyview上机.docx_第1页
第1页 / 共25页
广工离散anyview上机.docx_第2页
第2页 / 共25页
广工离散anyview上机.docx_第3页
第3页 / 共25页
广工离散anyview上机.docx_第4页
第4页 / 共25页
广工离散anyview上机.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

广工离散anyview上机.docx

《广工离散anyview上机.docx》由会员分享,可在线阅读,更多相关《广工离散anyview上机.docx(25页珍藏版)》请在冰豆网上搜索。

广工离散anyview上机.docx

广工离散anyview上机

1、判断元素与集和的关系

BooleanIsInSet(SetElemelem,pSetpA){

//Addyourcodehere

SetElem*pAElems;

pAElems=outToBuffer(pA);

while(*pAElems!

='\n')

{if(elem==*pAElems)

returntrue;

else

pAElems++;

}

returnfalse;

}

2、集和的并运算

pSetSetUnion(pSetpA,pSetpB){

pSetpS;

pS=createNullSet();

SetElem*pBElems;

SetElem*pAElems;

pBElems=outToBuffer(pB);

pAElems=outToBuffer(pA);

while(*pAElems!

='\n')

{directInsertSetElem(pS,*pAElems);

pAElems++;

}

while(*pBElems!

='\n')

{if(!

isInSet(pA,*pBElems))

{

directInsertSetElem(pS,*pBElems);

}

++pBElems;

}

returnpS;

}

3、集和的交集

pSetSetIntersection(pSetpA,pSetpB){

pSetpS;

pS=createNullSet();

SetElem*pBElems;

pBElems=outToBuffer(pB);

while(*pBElems!

='\n')

{if(isInSet(pA,*pBElems))

{

directInsertSetElem(pS,*pBElems);

}

++pBElems;

}

returnpS;

}

4、集和的差运算

pSetSetSubtraction(pSetpA,pSetpB){

pSetpS;

pS=createNullSet();

SetElem*pAElems;

pAElems=outToBuffer(pA);

while(*pAElems!

='\n')

{

if(!

isInSet(pB,*pAElems))

{

directInsertSetElem(pS,*pAElems);

}

pAElems++;

}

returnpS;

}

6、集和的对称差运算

pSetSetSysmmetricDifference(pSetpA,pSetpB){

//Addyourcodehere

pSetpS;

pS=createNullSet();

SetElem*pAElems;

SetElem*pBElems;

pAElems=outToBuffer(pA);

pBElems=outToBuffer(pB);

while(*pAElems!

='\n')

{

if(!

isInSet(pB,*pAElems))

{

directInsertSetElem(pS,*pAElems);

}

pAElems++;

}

while(*pBElems!

='\n')

{

if(!

isInSet(pA,*pBElems))

{

directInsertSetElem(pS,*pBElems);

}

pBElems++;

}

returnpS;

}

7、两个集和的包含关系

SetRelationshipStatusSetRelationship(pSetpA,pSetpB){

//Addyourcodehere

pSetpS;

pS=createNullSet();

SetElem*pAElems;

SetElem*pBElems;

pAElems=outToBuffer(pA);

pBElems=outToBuffer(pB);

pS=pB;

if(isNullSet(pA)&&!

isNullSet(pB))

returnREALINCLUDED;

if(!

isNullSet(pA)&&isNullSet(pB))

returnREALINCLUDING;

if(isNullSet(pA)&&isNullSet(pB))

returnEQUAL;

if(!

isNullSet(pA)&&!

isNullSet(pB))

{while(*pAElems!

='\n')

{

if(isInSet(pS,*pAElems))

pAElems++;

else

{

while(*pBElems!

='\n')

{

if(isInSet(pA,*pBElems))

pBElems++;

else

returnNOT_INCLUSIVE;

if(*pBElems=='\n')

returnREALINCLUDING;

}

}

}

if(*pAElems=='\n')

{while(*pBElems!

='\n')

if(isInSet(pA,*pBElems))

pBElems++;

else

returnREALINCLUDED;

if(*pBElems=='\n')

returnEQUAL;

}

}

}

8、求集和的幂集

pSetmiji(pSetpB,pSetpC)

{

SetElem*pBElems;

SetElem*pCElems;

pSetpS;

pS=createNullSet();

pBElems=outToBuffer(pB);

pCElems=outToBuffer(pC);

while(*pBElems!

='\n')

{directInsertSetElem(pS,*pBElems);

pBElems++;

}

while(*pCElems!

='\n')

{if(!

isInSet(pB,*pCElems))

{

directInsertSetElem(pS,*pCElems);

}

++pCElems;

}

returnpS;

}

pFamilyOfSetPowerSet(pSetpA){

//Addyourcodehere

inti;

pSetpI=createNullSet();

pFamilyOfSetpF=createNullFamilyOfSet();

SetElem*pBElems=outToBuffer(pA);

insertToFamilyOfSet(pF,pI);

if(isNullSet(pA)==FALSE)

while(*pBElems!

='\n')

{

pSetpK=createNullSet();

directInsertSetElem(pK,*pBElems);

pSet*pS=outFamilyOfSetToBuffer(pF);

for(i=0;*(pS+i)!

=NULL;i++)

insertToFamilyOfSet(pF,miji(pK,*(pS+i)));

pBElems++;

}

returnpF;

}

递归法求幂集

void myFunction(long k, SetElem *pAElems,pFamilyOfSet pFamSetA,pSet pB)

{           

    SetElem *a=pAElems;

    long i=k;

    pB=createNullSet();

    while(*a!

='\n')

     {     

       if(i%2==1)   //表示二进制最后一位是1

        directInsertSetElem(pB,*a);

        a++;        

        i>>=1;

     }

     insertToFamilyOfSet(pFamSetA,pB);  //把集和加入到集族

     k--;

     if(k>=0)   //2~n-1个子集

     myFunction(k,pAElems,pFamSetA,pB);

}

pFamilyOfSet PowerSet(pSet pA)

{

  //Add your code here

  pFamilyOfSet pFamSetA=createNullFamilyOfSet();

  long i,k=1;     

  //设置循环变量

  SetElem *pAElems=outToBuffer(pA); 

  pSet pB=createNullSet();

  for(i=0;*(pAElems+i)!

='\n';)

    i++;   

  k<<=i ;

  myFunction(k,pAElems,pFamSetA,pB);

  return pFamSetA;

}

卡氏积运算

pCartersianSetCartesianProduct(pOriginalSetpA,pOriginalSetpB)

{

pCartersianSetpC=createNullCartersianSet();

for(resetOriginalSet(pA);!

isEndOfOriginalSet(pA);nextOriginalSetPos(pA))

{

for(resetOriginalSet(pB);!

isEndOfOriginalSet(pB);nextOriginalSetPos(pB))

OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pB)));

}

returnpC;

}

集和A到B的二元关系

booleanisBinaryRelation(pOriginalSetpA,pOriginalSetpB,pCartersianSetpC)

{

pCartersianSetpD=createNullCartersianSet();

for(resetOriginalSet(pA);!

isEndOfOriginalSet(pA);nextOriginalSetPos(pA))

{

for(resetOriginalSet(pB);!

isEndOfOriginalSet(pB);nextOriginalSetPos(pB))

OrderedCoupleInsertToCartersianSet(pD,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pB)));

}

for(getCurrentCartersianSetElem(pC);!

isEndOfCartersianSet(pC);nextCartersianSetPos(pC))

{

while(!

isEndOfCartersianSet(pD))

{if(getCurrentCartersianSetElem(pD)==getCurrentCartersianSetElem(pC))

nextCartersianSetPos(pD);

else

returnfalse;

}

}

if(isEndOfCartersianSet(pC))

returntrue;

}

集和A的恒等关系

pCartersianSetIdentityRelation(pOriginalSetpSet)

{

pCartersianSetpC=createNullCartersianSet();

for(resetOriginalSet(pSet);!

isEndOfOriginalSet(pSet);nextOriginalSetPos(pSet))

{

OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pSet),getCurrentOriginalSetElem(pSet)));

}

returnpC;

}

两个卡氏积的复合运算

pCartersianSetCompositeOperation(pCartersianSetpA,pCartersianSetpB)

{

pCartersianSetpC=createNullCartersianSet();

for(resetCartersianSet(pA);!

isEndOfCartersianSet(pA);nextCartersianSetPos(pA))

{for(resetCartersianSet(pB);!

isEndOfCartersianSet(pB);nextCartersianSetPos(pB))

{

if(getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pA))==getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pB)));

OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pA)),getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pB))));

}

}

returnpC;

}

求一个关系的逆运算

pCartersianSetInverseOperation(pCartersianSetpA)

{

pCartersianSetpC=createNullCartersianSet();

for(resetCartersianSet(pA);!

isEndOfCartersianSet(pA);nextCartersianSetPos(pA))

{

OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pA)),getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pA))));

}

returnpC;

}

求集和A二元关系上的逆运算

pCartersianSetPowOperation(pCartersianSetpA,

pCartersianSetpBinaryRelationR,

intn)

{

pCartersianSetpC=createNullCartersianSet();

pC=copyCartersianSet(pBinaryRelationR);

if(n==0)

{for(resetOriginalSet(pA);!

isEndOfOriginalSet(pA);nextOriginalSetPos(pA))

{

OrderedCoupleInsertToCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA)));

}

}

if(n==1)

returnpC;

pCartersianSetpD=createNullCartersianSet();

inti;

for(i=2;i<=n;i++)

{pD=copyCartersianSet(pC);

pC=compositeOperation(pD,pBinaryRelationR);

}

returnpC;

}

判断集和A上二元关系的自反性

booleanIsReflexivity(pOriginalSetpA,pCartersianSetpBinaryRelationR)

{

pCartersianSetpC=createNullCartersianSet();

pC=copyCartersianSet(pBinaryRelationR);

if(isNullOriginalSet(pA))

returntrue;

else

{for(resetOriginalSet(pA);!

isEndOfOriginalSet(pA);)

{if(isInCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA))))

nextOriginalSetPos(pA);

else

break;}

}

if(isEndOfOriginalSet(pA))

returntrue;

else

returnfalse;

}

判断集和A上二元关系的反自反性

booleanIsAntiReflexivity(pOriginalSetpA,pCartersianSetpBinaryRelationR)

{

pCartersianSetpC=createNullCartersianSet();

pC=copyCartersianSet(pBinaryRelationR);

if(isNullOriginalSet(pA))

returntrue;

else

{for(resetOriginalSet(pA);!

isEndOfOriginalSet(pA);)

{if(!

isInCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA))))

nextOriginalSetPos(pA);

else

break;}

}

if(isEndOfOriginalSet(pA))

returntrue;

else

returnfalse;

}

判断集和A上二元关系的反自反性或自反性

Reflexivity_TypeDetermineReflexivity(pOriginalSetpA,

pCartersianSetpBinaryRelationR)

{

pCartersianSetpC=createNullCartersianSet();

pC=copyCartersianSet(pBinaryRelationR);

if(isNullOriginalSet(pA))

returnREFLEXIVITY_AND_ANTI_REFLEXIVITY;

else

{for(resetOriginalSet(pA);!

isEndOfOriginalSet(pA);)

{if(isInCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA))))

nextOriginalSetPos(pA);

else

break;}

}

if(isEndOfOriginalSet(pA))

returnREFLEXIVITY;

else

{

for(resetOriginalSet(pA);!

isEndOfOriginalSet(pA);)

{

if(!

isInCartersianSet(pC,createOrderedCouple(getCurrentOriginalSetElem(pA),getCurrentOriginalSetElem(pA))))

nextOriginalSetPos(pA);

else

break;}

}

if(isEndOfOriginalSet(pA))

returnANTI_REFLEXIVITY;

else

returnNOT_REFLEXIVITY_AND_NOT_ANTI_REFLEXIVITY;

}

判断集和A上二元关系的对称性或反对称性

Symmetry_TypeDetermineSymmetry(pCartersianSetpBinaryRelationR)

{

pCartersianSetpC=createNullCartersianSet();

pC=copyCartersianSet(pBinaryRelationR);

for(resetCartersianSet(pC);!

isEndOfCartersianSet(pC);)

{

if(getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pC))!

=getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pC)))

{

if(isInCartersianSet(pC,createOrderedCouple(getSecondElemOfOrderedCouple(getCurrentCartersianSetElem(pC)),getFirstElemOfOrderedCouple(getCurrentCartersianSetElem(pC)))))

nextCartersianSetPos(pC);

else

returnANTI_SYMMETRY;

if(isEndOfOriginalSet(pC))

returnSYMMETRY;

}

else

nextCartersianSetPos(pC);

}

if(isEndOfOriginalSet(pC))

returnSYMMETRY_AND_ANTI_SYMMETRY;

else

returnNOT_SYMMETRY_AND_NOT_ANTI_SYMMETR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1