- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
不确定有穷自动机的确定化
编译原理实验报告实验名称不确定有穷自动机的确定化实验时间_____ 2014年4月10日_______院系_______管理信息工程学院_______班级_______11计算机科学与技术____学号______201101020109____________姓名________姜高__________________实验目的不确定有穷自动机的确定化实验原理用子集构造算法构造子集加入子集族中直到收敛(所有构造的子集都已存在于子集族)为止。如原来不确定有穷自动机的五元组形式为:M=(K,,F,S,Z),其中K为状态集,为字母表,F为转换函数,S为初始态,Z为终态集。用子集族S代替K,新的转换函数D代替F,形成新的五元组M=(S,,D,S,Z)即将原不确定有穷自动机转换为确定有穷自动机。实验内容闭包计算:closure(I)转换函数:move(I,a)伪代码假定构造的子集族为S=(T1,T2。。。。。。), K为状态集:开始,令closure(K0)为S中唯一成员,并且未被标记WHILE(C中存在尚未被标记的子集T)DO{标记T;For 每输入字母a DO{U:=closure(move(T,a));If U 不在S中 then将U作为未被标记的子集加在S中}}5.代码实现#includeiostream #includestring #define MAXS 100 using namespace std; string NODE; //结点集合string CHANGE; //终结符集合int N; //NFA边数struct edge{ string first; string change; string last; }; structchan{ stringltab; stringjihe[MAXS]; }; voidkong(int a) { inti; for(i=0;ia;i++) cout ; } //排序voidpaixu(string a) { inti,j; char b; for(j=0;ja.length();j++) for(i=0;ia.length();i++) if(NODE.find(a[i])NODE.find(a[i+1])) { b=a[i]; a[i]=a[i+1]; a[i+1]=b; } }voideclouse(char c,string he,edge b[]) { int k; for(k=0;kN;k++) { if(c==b[k].first[0]) if(b[k].change==*) { if(he.find(b[k].last)he.length()) he+=b[k].last; eclouse(b[k].last[0],he,b); } } } void move(chan he,intm,edge b[]) { inti,j,k,l; k=he.ltab.length(); l=he.jihe[m].length(); for(i=0;ik;i++) for(j=0;jN;j++) if((CHANGE[m]==b[j].change[0])(he.ltab[i]==b[j].first[0])) if(he.jihe[m].find(b[j].last[0])he.jihe[m].length()) he.jihe[m]+=b[j].last[0]; for(i=0;il;i++) for(j=0;jN;j++) if((CHANGE[m]==b[j].change[0])(he.jihe[m][i]==b[j].first[0])) if(he.jihe[m].find(b[j].last[0])he.jihe[m].length()) he.jihe[m]+=b[j].last[0]; } //输出voidoutputfa(intlen,inth,chan *t) { inti,j,m; cout I ; for(i=0;ilen;i++) coutICHANGE[i] ; coutendl-------------------------endl; for(i=0;ih;i++) { cout t[i].ltab; m=t[i].ltab.length(); for(j=0;jlen;j++) { kong(8-m); m=t[i].jihe[j].length(); coutt[i].jihe[j]; } coutendl; } } void main() { edge *b=new edge[MAXS]; inti,j,k,m,n,h,x,y,len; bool flag; stringj
您可能关注的文档
最近下载
- Java EE轻量级框架应用实战—SSM框架(Spring MVC+Spring+MyBatis)(第2版)课件 第7--14章 Spring Bean---百货中心供应链管理系统 .pptx
- 2024年公务员考试必考公共基础知识点复习汇总(共150题).doc
- IEC 60076-1 电力变压器 第1部分:总则.pdf
- 农村宅基地审批资料解读.ppt
- 我国农村职业教育的研究文献统计分析.doc VIP
- 交通安全员-公路篇-第1部分综合知识和能力-综合知识和能力-案例题.docx VIP
- 国企个人述职报告.pptx
- 中药渣资源化利用关键技术与产业化.docx
- 3D打印技术简要介绍.ppt
- 叉车 职业技术培训教材.pdf
文档评论(0)