關於形式語言與自動機的DFA與NFA一個小小的思考

來自課本的一個問題,沒有解析,記錄個人分析
在這裏插入圖片描述
至少是2n次方個,如何推導?
先用表格列舉幾個,看有無規律:
在這裏插入圖片描述
這就是列舉的前11個狀態,我們可以發現:

  • 首先只有一個狀態元素的集合只有{q0};
  • 擁有兩個狀態元素的集合是{q0,q1},{q0,q2},{q0,q3}…{q0,qn}
  • 擁有三個狀態元素的集合是{q0,q1,q2},{q0,q1q3},{q0,q1,q4}…{q0,q1,qn}…{q0,q2,q3}…

根據以上的列出情況加上由子集構造可以知道,其實就是集合的組成排列組合。
我們可以先不看每一組中的q0(q0個數爲C(n,0),即一個)因爲這是每一個集合中必有得狀態元素,那麼組合情況就是
{q1},{q2}…{qn} + {q1,q2},{q1,q3}…{q1,qn},{q2,q3}…+{q1,q2,q3…,qn}
{q1},{q2}…{qn}個數就爲C(n,1),
{q1,q2},{q1,q3}…{q1,qn},{q2,q3}…個數就爲C(n,2),
{q1,q2,q3…,qn}個數就爲C(n,n)
那麼加上q0之後,求和爲C(n,0) + C(n,1)+ C(n,2)+…C(n,n) = 2n

那爲什麼是至少2n個呢?
如果少於2n個,比如2n-1個呢?假設最大集合數是2n- k,那麼很明顯與我們上述推斷的結論矛盾,即存在某一個狀態集合是我們達不到的,那麼更根據組成類似的集合構成C(m,n),那麼如果某一個狀態不能達到,那麼所有的狀態集合中的數目都要減一,即2n-1個。反之,達到的話,就有2n
或者歸納證明:
只有一個狀態元素,如圖
在這裏插入圖片描述
那麼很明顯滿足上述表達式,最少是2個狀態數目;
假設C(n-1,0) + C(n-1,1)+ C(n-1,2)+…C(n-1,n-1) = 2n-1成立,那麼在最後再加入一個狀態元素,那麼C(n-1,0) + C(n-1,1)+ C(n-1,2)+…C(n-1,n-1) + 2n-1 = 2n-1+ 2n-1 = 2n,即證成立。
那爲啥加上2n-1,這是因爲已經存在2n-1個狀態集合,按照上述舉例的規律,每一個都增加的一個元素即可,狀態數目翻倍。
個人理解是因爲加入q0一共是n+1個狀態元素,最大可能有2n+1個組合的狀態集合。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章