freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

dfa的編程實現(xiàn)[含源代碼、實驗報告](編輯修改稿)

2025-06-09 18:29 本頁面
 

【文章內容簡介】 () //判斷字符串 { cout請輸入字符串endl。 string str。 cinstr。 int i=0。 char present=StartStates。 while(i()) { present=move(present,str[i])。//move函數(shù)即去遍歷轉換表,返回下個狀態(tài) if(present==39。N39。) // N 即為move返回錯誤的狀態(tài), { break。 } i++。 } if((present)!=)//如果返回的狀態(tài)用find函數(shù) 屬于最終狀態(tài)集則表示識別 cout該自動機識別此字符串endl。 else cout該自動機不識別此字符串endl。 }對DFA的存儲與讀寫將DNF的信息寫入文件中,第一行:字符集;第二行:狀態(tài)集。第三行:開始狀態(tài);第四行:結束狀態(tài)集;以下行寫入狀態(tài)轉換表按照既定的規(guī)定讀取文件中的數(shù)據(jù)將其賦值,然后初始化DFA即可;DFA的語言集列表顯示:這一個模塊應該是這個實驗中比較難的一部分了。我并沒有使用while循環(huán)的這個做法。而是用函數(shù)遞歸,通過所有字符集的路徑去遍歷整個DFA。最后將符合條件的字符串輸出;void Traversal(char present, int N,string strass=)//遍歷DFA的語言集列表 { if(present==39。N39。||N0)//若路徑已經大于N或者當前狀態(tài)錯誤,停止遞歸 return。 N。 if((present)!=) { cout該自動機識別字符串:strassendl。 } for(int i=0。i()。i++) { string temp。 temp=strass。 strass+=Alphabet[i]。 Traversal(move(present,Alphabet[i]),N,strass)。 strass=temp。 } }遞歸終止條件的判斷。當N 時, N小于0,或者遍歷到無路可走是便終止遇到的問題:對于遞歸的終止條件寫得不夠明確。 遞歸前對字符串賦值strass賦值,遞歸后應該還原,這一點沒有想到。調試了很久。 總結,對遞歸的具體編寫 還是不熟悉。目前的代碼,字符集和狀態(tài)只能是一個字符,若要優(yōu)化可以用vectorstring容器存儲即可;實驗用例:實驗結果:DFA的初始化判斷字符串:顯示小于N的語言集:讀取DFA文件:實驗總結:在這次實驗中,學習對一般的DFA的表達方法與編程實現(xiàn)方法。對課本提供的算法有了更深刻的認識。在編寫和調試代碼的過程中對自身的編程能力也有了很大的提高。對自動機和其識別語言有了更透徹的理解。在動手編程之前一定要好好明確實驗的理論準備和思路的理清,能幫助我們在實驗過程中少走更多的彎路??傊谶@次實驗中收獲很多,提高了動手能力和分析問題的能力。源代碼://構造一個DFAincludeiostreamincludestringincludevectorincludefstreamusing namespace std。class TransitionTable{public: cha
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1