如何将此描述翻译成语言?

问题描述

我正在尝试将以下描述“所有包含 0 和 1 且 0 至少与 1 一样多的字符串”的描述翻译成一种语言。

我想过 {L= 0^n1^n | n>0} 但是“至少”部分呢?这是否意味着我可以有更多的 0 而不是 1? (例如 000011)(或者可能是 {L = 0^j1^k | j>k,j,k >0} ?)我不完全确定它是如何工作的,所以任何帮助将不胜感激:)>

(顺便说一句,我这样做是为了证明抽引理不正常,欢迎提供任何提示,哈哈)

解决方法

对此没有一个非常令人满意的 set-builder 符号。令#k(w) 是符号k 在字符串w 中出现的次数,其中w 是包含符号k 的某个字母表中的字符串。那么你的语言是 { w in {0,1}* | #0(w) >= #1(w) }。我不确定这样写下来会有多大帮助。

为了证明语言不规则,我建议直接使用普通语言的抽水引理或 Myhill-Nerode 定理。对于抽水引理,选择 1^p 0^p 并争辩说抽水增加了太多的 1。要使用 Myhill-Nerode,请选择序列 1,11,...,1^k,...,并论证可以附加到 1^k 以获得您语言中的字符串的最短字符串是 0^k ,这意味着所有 1^k 都是可区分的。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...