没有合适的资源?快使用搜索试试~ 我知道了~
首页广工离散数学anyview答案(16届最新完整版)
广工离散数学anyview答案(16届最新完整版)
5星 · 超过95%的资源 需积分: 18 16 下载量 125 浏览量
更新于2023-03-16
评论 5
收藏 226KB DOC 举报
网上目前只有前几年的离散数学anyview答案,有很多错的不说,还少了很多这几年新出的题目,非常不利于我们“参考”。这一份是我自己写完后,制作出来的的已经通过的,最新的最全的答案
资源详情
资源评论
资源推荐
说明:第 26 页开始的补充是 16 届最新最全的题目答案,但是不一
定按照顺序,建议用 ctrl+F 查找题目,而且编译提示找不到函数时
也需要用 ctrl+F 在文档中查找对应缺失的函数
1.00① 试设计一算法,
判断元素与集合之间的关系。
Boolean IsInSet(SetElem elem, pSet pA){
//Add your code here
SetElem *pAElems;
for(pAElems=outToBuffer(pA);*pAElems!='';pAElems++)
if(elem==*pAElems) return true;
return false;
}
1.01③ 试设计一算法,
实现集合的并运算。
pSet SetUnion(pSet pA, pSet pB) {
pSet pS;
pS=createNullSet();
SetElem *pBElems;
SetElem *pAElems;
for(pAElems=outToBuffer(pA);*pAElems!='';pAElems++)
directInsertSetElem(pS,*pAElems);
for(pBElems=outToBuffer(pB);*pBElems!='';pBElems++)
if(!isInSet(pA,*pBElems))
directInsertSetElem(pS,*pBElems);
return pS;
}
1.02② 试设计一算法,
实现集合的交运算。
pSet SetIntersection(pSet pA, pSet pB){
pSet pS;
pS=createNullSet();
SetElem *pBElems;
for(pBElems=outToBuffer(pB);*pBElems!='';pBElems++)
if(isInSet(pA,*pBElems))
directInsertSetElem(pS,*pBElems);
return pS;
}
1.03② 试设计一算法,
实现集合的差运算。
pSet SetSubtraction(pSet pA, pSet pB){
pSet pS;
pS=createNullSet();
SetElem *pAElems;
for(pAElems=outToBuffer(pA);*pAElems!='\n';pAElems++)
if(!isInSet(pB,*pAElems))
directInsertSetElem(pS,*pAElems);
return pS;
}
1.04② 试设计一算法,
实现集合的求补集运算。
pSet SetComplement(pSet pA, pSet pI){
pSet pS;
pS=createNullSet();
SetElem *pAElems;
SetElem *pIElems;
for(pAElems=outToBuffer(pA);*pAElems!='\n';pAElems++)//PA 不是 PI 的子集的情况判断
if(!isInSet(pI,*pAElems))
{return NULL;break;}
for(pIElems=outToBuffer(pI);*pIElems!='\n';pIElems++)
if(!(isInSet(pA,*pIElems)))
directInsertSetElem(pS,*pIElems);
return pS;
}
1.05② 试设计一算法,
实现集合的对称差运算。
pSet SetSysmmetricDifference(pSet pA, pSet pB){
//Add your code here
pSet pS;
pS=createNullSet();
SetElem *pAElems;
SetElem *pBElems;
for(pAElems=outToBuffer(pA);*pAElems!='\n';pAElems++)
if(!isInSet(pB,*pAElems))
directInsertSetElem(pS,*pAElems);
for(pBElems=outToBuffer(pB);*pBElems!='\n';pBElems++)
if(!isInSet(pA,*pBElems))
directInsertSetElem(pS,*pBElems);
return pS;
}
1.05③ 试设计一算法,
判断两个集合之间的包含关系。
SetRelationshipStatus SetRelationship(pSet pA, pSet pB) {
//Add your code here
pSet pS;
pS=createNullSet();
SetElem *pAElems;
SetElem *pBElems;
pAElems=outToBuffer(pA);
pBElems=outToBuffer(pB);
pS=pB;//假定 pS 为 pB 的相等集合
if(isNullSet(pA)&&!isNullSet(pB))//pA 为空集,pB 不为空集时
return REALINCLUDED;
if(!isNullSet(pA)&&isNullSet(pB))//pB 为空集,pA 不为空集时
return REALINCLUDING;
if(isNullSet(pA)&&isNullSet(pB))//pA,PB 都为空集时
return EQUAL;
if(!isNullSet(pA)&&!isNullSet(pB))//pA,PB 都不为空集时
{ while(*pAElems!='\n')
{
if(isInSet(pS,*pAElems))
pAElems++;
else
{
while(*pBElems!='\n')
{
if(isInSet(pA,*pBElems))
pBElems++;
else
return NOT_INCLUSIVE;//若集合 pB 中有一个元素不属于 pB
if(*pBElems=='\n')
return REALINCLUDING;//若集合 pB 中的所有元素已遍历完
}
}
}
if(*pAElems=='\n')
{
while(*pBElems!='\n')
if(isInSet(pA,*pBElems))
pBElems++;
else
return REALINCLUDED;//若集合 pB 中有一个元素不属于 pA
if(*pBElems=='\n')//若集合 pB 元素已遍历完
return EQUAL;
}
}
}
1.07⑤ 试设计一个非递归算法,
实现集合的求幂集运算。
pSet miji(pSet pB,pSet pC)
{
SetElem *pBElems;
SetElem *pCElems;
pSet pS;
pS=createNullSet();
for(pBElems=outToBuffer(pB);*pBElems!='\n';pBElems++)
directInsertSetElem(pS,*pBElems);
for(pCElems=outToBuffer(pC);*pCElems!='\n';pCElems++)
if(!isInSet(pB,*pCElems))
directInsertSetElem(pS,*pCElems);
return pS;
}
pFamilyOfSet PowerSet(pSet pA){
//Add your code here
int i;
pSet pI=createNullSet();
pFamilyOfSet pF=createNullFamilyOfSet();
SetElem *pAElems=outToBuffer(pA);
insertToFamilyOfSet(pF,pI);
if(!isNullSet(pA))//pA 不为空集时
while(*pAElems!='\n')
{
pSet pK=createNullSet();
directInsertSetElem(pK,*pAElems);
pSet *pS=outFamilyOfSetToBuffer(pF);
for(i=0;*(pS+i)!=NULL;i++)
insertToFamilyOfSet(pF,miji(pK,*(pS+i)));
pAElems++;
}
return pF;
}
1.08④ 试设计一个递归算法,
实现集合的求幂集运算。
void myFunction(long k, SetElem *pAElems,pFamilyOfSet pFamSetA,pSet pB)
{
long i=k,j=0;
pB=createNullSet();
while(*(pAElems+j)!='\n')
{
if(i%2==1) //表示二进制最后一位是 1
directInsertSetElem(pB,*(pAElems+j));//执行插入步骤
j++;
i>>=1;
}
insertToFamilyOfSet(pFamSetA,pB); //把集合加入到集族
k--;//插入一个集合到集族后,对应 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;//设置循环变量 i
SetElem *pAElems=outToBuffer(pA);
pSet pB=createNullSet();
for(i=0;*(pAElems+i)!='\n';)//利用循环得出集合 pA 的个数
i++;//不可将 i 放到 for 语句中,否则当 pA 为空集时,i 的值不为零
k<<=i;//k 利用左移位运算表示集合 pA 集族的个数 k=2^i
myFunction(k,pAElems,pFamSetA,pB);
return pFamSetA;
}
3.01⑤ 试设计一个非递归算法,
验证一个表达式是不是命题公式(statement formula)。
Boolean IsStatementFormula(pStatementFormula pFormula){
//Add your code here
StatementFormulaSymbles preS,currS,nextS;
int leftNum = 0,rightNum = 0;
preS = getCurrentSymbleType(pFormula);
switch(preS)
{
case Exception:return false;//若取得了公式外的字符,则不是合法的命题公式
case Conjunction:return false;
case Disjunction:return false;
case Implication:return false;
case Equivalence:return false;
case LeftParenthesis:leftNum++;break;//若为左括号,则 leftNum 的值自增一
case RightParenthesis:return false;
剩余63页未读,继续阅读
pyxiea
- 粉丝: 83
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1