以二进制形式编写的集合 {1,2,4,8,..,2^n} 的 DFA

DFA for a set {1,2,4,8,..,2^n} written in binary

我必须为一个集合构造一个最小的确定性有限状态自动机 (DFA) :-

L = {1,2,22,23,24 ....,2n} 其中数字 1,2,22,23, 24.....,2n 以二进制形式写入并且输入字母表 = {0,1} 并且 'n' 是非-负整数。

我构建了一个最小的 DFA 为:-

此 DFA 的正则表达式 (RegEx) 应为:- 10*,因为语言包含字符串 {1,10,100,1000,....}

现在,我很困惑是否应该考虑给定集合(语言)的每个字符串的唯一表示。
在这里,字符串 '1' 有无限多的表示形式,例如 {1,01,001,0001,.....} 同样,我可以通过最初附加零来获得集合中每个字符串的许多表示形式。
所以,如果我考虑它,那么我将 RegEx 设置为 0*10*.
根据这个 RegEx,我等效的最小 DFA 将是:-

所以,我的问题是:根据我最初编写的集合的给定描述,哪个 DFA 是正确的。我是否应该提及所有字符串都应以“1”开头,或者每个字符串都具有唯一的表示形式以准确描述语言,以便我可以获得给定集合的唯一最小 DFA。
请帮忙!

我会使用第二个,因为它更灵活,如果你需要将你的数字存储在内存字段大于你的数字(位数)的内存中,你需要添加初始零来存储它。