日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

有限自动机的构造与识别

發(fā)布時(shí)間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有限自动机的构造与识别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

實(shí)驗(yàn)三 有限自動(dòng)機(jī)的構(gòu)造與識(shí)別

?

一、實(shí)驗(yàn)?zāi)繕?biāo)
??
1、掌握有窮狀態(tài)自動(dòng)機(jī)的概念;??
2、掌握有窮狀態(tài)自動(dòng)機(jī)的存儲(chǔ)及表示方法;
3、掌握有窮狀態(tài)自動(dòng)機(jī)與正則式之間的關(guān)系。
?
二、實(shí)驗(yàn)要求
??
1、輸入正規(guī)式;?

2、構(gòu)造該正規(guī)式的有窮狀態(tài)自動(dòng)機(jī);

3. 以五元組形式輸出。

三、算法

參見教材的轉(zhuǎn)換規(guī)則。

練習(xí):

2? (a|b)*abb

2? l(l|d)*

2? 1(1010*|1(010)*1)*0

?

四、完成算法設(shè)計(jì)、編碼和調(diào)試工作,完成實(shí)驗(yàn)報(bào)告。

?

#include <string.h> #include <stdio.h> #include <stdlib.h> int main() { ??char p[30][30]; //存放文法 ??char q[30][30]; ??int line=0; ??int n; ??int i,j; ??int count=0; ??int k,t=0; ??int flag=0; ??int l,m=0;? ??char VN[30] = {'\0'}; ??//存放非終結(jié)符號(hào) ??char VT[30] = {'\0'}; ??//存放終結(jié)符號(hào) ??printf("\t請(qǐng)輸入規(guī)則個(gè)數(shù):");? ??scanf("%d",&n); ??line = n; for(i = 0; i < 30; i++)//給字符串?dāng)?shù)組p、q全部賦值為'\0' ??for(j=0;j<30;j++){p[i][j]='\0';q[i][j]='\0';} printf("\t請(qǐng)輸入文法:\n"); for(i = 0; i < line; i++)? {printf("\t");scanf("\t%s",p[i]);} //把字符分為終結(jié)符號(hào)合非終結(jié)符號(hào) l=0;m=0; for(i = 0;i < line; i++) { for(j = 0;j < 30&&(p[i][j] != '\0');j++)?? { // 非終結(jié)符號(hào)放入數(shù)組VN中 ??if((p[i][j]<='z' && p[i][j]>='a')||(p[i][j]<='9' && p[i][j]>='0'))?? { ????flag = 0; ????for(t=0; VN[t] != '\0';t++){if(VN[t] == p[i][j]){flag = 1;break;}} ????if(flag == 0){VN[l] = p[i][j];l++;} } // 終結(jié)符號(hào)放入數(shù)組VT中 if(p[i][j]<='Z' && p[i][j]>='A') { ???flag = 0; ???for(t = 0; t<30&&(VT[t] != '\0'); t++){if(VT[t] == p[i][j]){flag = 1;break;}} ???if(flag==0){VT[m] = p[i][j];m++;} } ?? } //把規(guī)則右部分分離放入數(shù)組q中 count = 0; k =0; for(i = 0;i < line;i++) { for(j = 4;j < 30 && (p[i][j] != '\0');j++) { ??if((p[i][j]<='z' && p[i][j]>='a')||(p[i][j]<='Z' && p[i][j]>='A')||(p[i][j]<='9'&& p[i][j]>='0')){q[count][k] = p[i][j];k++;} ??else{count++;k =0;} } count++;k=0; } //判斷是確定的還是非確定的有窮狀態(tài)自動(dòng)并進(jìn)行前半部分打印 //判斷依據(jù):q數(shù)組中每一行字符串是否相同 flag = 0; for(i=0;i<count;i++) { for(j=i+1;j<count;j++) { if(strcmp(q[i],q[j])==0){flag=1;break;} if(flag==0){VT[m]=p[i][j];m++;} } } } // 把規(guī)則右部分分離放入數(shù)組 q 中 count=0; k=0; for(i=0;i<line;i++) { for(j=4;j<30&&(p[i][j]!='\0');j++)? { ??if((p[i][j]<='z'&&p[i][j]>='a')||(p[i][j]<='Z'&&p[i][j]>='A')||(p[i][j]<='9' &&p[i][j]>='0')){q[count][k]=p[i][j];k++;} ??else{count++;k=0;} } count++;k=0; } // 判斷是確定的還是非確定的有窮狀態(tài)自動(dòng)機(jī)并進(jìn)行前半部分打印 // 判斷依據(jù)q 數(shù)組中每一行字符串是否相同 flag=0; for(i=0;i<count;i++) { for(j=i+1;j<count;j++) { ??if(strcmp(q[i],q[j])==0) {flag=1;break;} } } ??if(flag==1){printf("\t是非確定的有窮狀態(tài)自動(dòng)機(jī),即 NFA\n\n"); ??printf("\t構(gòu)造的有窮狀態(tài)自動(dòng)機(jī)為: \n"); ??printf("\tNFA? N= ( K ,∑, M , {S} , {Z} ) \n");} ??else{printf("\t是確定的有窮狀態(tài)自動(dòng)機(jī),即 DFA\n\n\n"); ??printf("\t構(gòu)造的有窮狀態(tài)自動(dòng)機(jī)為: \n"); ??printf("\tDFA? D= ( K ,∑, M , {S} , {Z} ) \n");} ??printf("\t其中:\n\tK={S"); ??for(i=0;i<30&&(VT[i]!='\0');i++){printf(" , %c",VT[i]);} ??printf("}\n");printf("\t∑ ={"); for(i=0;i<30&&(VN[i]!='\0');i++){printf("%c? ",VN[i]);} printf("}\n");k=0;count=0; for(i=0;i<line;i++) { ????j=4;while(p[i][j]!='\0') { ??if(k<4){q[count][k]=p[i][k];k++;} else { ??if((p[i][j]<='z' && p[i][j]>='a')||(p[i][j]<='Z' && p[i][j]>='A')||(p[i][j]<='9'&&p[i][j]>='0')){q[count][k]=p[i][j];k++;j++;} ??if(p[i][j]=='|'){count++;k=0;j++;} } } count++;k=0; } printf("\n");printf("\tM:\n");l=0; while(VN[l]!='\0') { printf("\tM(S,%c)={",VN[l]); for(i=0;i<30;i++) { for(j=4;j<30&&(q[i][j]!='\0');j++) { if(VN[l]==q[i][j]&&(q[i][j+1]=='\0')&&(q[i][j-1]=='=')) printf("%c",q[i][0]); } } printf("}\t");l++; } printf("\n"); l=0; k=0; while(VT[k]!='\0') { ????l=0; while(VN[l]!='\0')? { ????printf("\tM(%c,%c)={",VT[k],VN[l]); for(i=0;i<30;i++) { for(j=4;j<30&&(q[i][j]!='\0');j++) { if(VT[k]==q[i][j]&&VN[l]==q[i][j+1]) printf("%c",q[i][0]); } } printf("}\t");l++; } k++;printf("\n"); } system("pause"); ?? }

轉(zhuǎn)載于:https://www.cnblogs.com/qq157049540/p/6126300.html

總結(jié)

以上是生活随笔為你收集整理的有限自动机的构造与识别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美老女人xx | 精品国产乱码久久久人妻 | 波多野结衣50连登视频 | 丁香婷婷综合激情 | 国产伦精品一区二区三区88av | av伦理在线 | 国产精品久久毛片av大全日韩 | 久久免费视频一区 | 国产精品手机在线观看 | 中文字幕一区二区人妻痴汉电车 | 精品在线免费播放 | 中国人妖和人妖做爰 | 日本一区二区三区免费观看 | 动漫美女被x | 在线日韩一区二区 | 韩国伦理在线视频 | 日韩色黄大片 | 亚洲午夜久久久久久久久久久 | 99视频精品在线 | 亚洲成年网 | 国产农村妇女aaaaa视频 | 亚洲欧美日本一区二区 | av噜噜在线观看 | 欧美成人一区二区视频 | 日本一区二区三区四区在线观看 | 亚洲图色在线 | 69精品视频 | 人与动物2免费观看完整版电影高清 | 成人免费毛片果冻 | 日本四虎影院 | 亚洲熟悉妇女xxx妇女av | 成人动漫在线观看 | 日韩国产亚洲欧美 | 日本三级一区二区 | 夜夜嗨av一区二区三区四区 | 中文字av| 天天人人| 国产精品一品二区三区的使用体验 | 亚洲五码av | 久久免费视频播放 | 国产精品久久久久影院 | 色视频免费 | 国产精品扒开腿做爽爽 | 五月激情网站 | 久久久性| 久久久中文字幕 | 老司机久久精品视频 | 夜夜爽妓女8888视频免费观看 | 日本东京热一区二区 | 超碰97免费| 欧美日韩午夜精品 | 久久极品视频 | 国产av日韩一区二区三区精品 | 佐佐木明希av在线 | 成熟妇人a片免费看网站 | 久热青草 | 中文字幕av一区二区三区人妻少妇 | 国产伦精品一区二区三区精品 | 亚洲福利在线播放 | 国产精品有码 | 国产黄色在线播放 | 一区二区三区四区免费观看 | 午夜视频在线看 | 一区二区在线不卡 | 欧美综合视频 | 亚洲狠狠爱 | 91蜜桃| 九一亚洲精品 | 成人欧美日韩 | 欧美激情三级 | 亚洲尤物在线 | 欧美日韩高清 | 性巴克成人免费网站 | 久草剧场 | 日韩一级性 | 99精品国产一区二区 | 本道综合精品 | 日本在线一级 | 91九色视频在线 | 欧美一二三区在线观看 | 日韩精品一区二区三区久久 | 黄页网站在线播放 | 久久久无码人妻精品无码 | 日韩中文字幕在线播放 | 小箩莉末发育娇小性色xxxx | www.黄色大片| 午夜精品导航 | 美日韩一二三区 | 91丝袜呻吟高潮美腿白嫩在线观看 | 日韩av一二三区 | 欧美69影院 | 红桃成人在线 | 人妻aⅴ无码一区二区三区 阿v免费视频 | 国产精品亚洲欧美在线播放 | 91视频影院 | 农民工hdxxxx性中国 | 国产第三页 | 妹子干综合网 | 国产高清久久久 |