设。语言据说有“反回文”属性,若对所有的字符串这是一个回文,。此外,对于每一个字符串是不是回文要么或,但不能两者都(!)(异或)。
我了解反回文性质,但找不到具有此性质的任何语言。最近一个我能找到的是,但它不具有独占或部分...也就是说,例如,两个和是。
谁能给我一个具有这种特性的语言的例子吗?甚至可能不止一个示例,因为我看不到这对语言有什么样的限制。(它必须是非常规的吗?上下文无关吗?或者甚至在?等中也不是。)
设。语言据说有“反回文”属性,若对所有的字符串这是一个回文,。此外,对于每一个字符串是不是回文要么或,但不能两者都(!)(异或)。
我了解反回文性质,但找不到具有此性质的任何语言。最近一个我能找到的是,但它不具有独占或部分...也就是说,例如,两个和是。
谁能给我一个具有这种特性的语言的例子吗?甚至可能不止一个示例,因为我看不到这对语言有什么样的限制。(它必须是非常规的吗?上下文无关吗?或者甚至在?等中也不是。)
Answers:
一个例子是。
还有另一个例子。
这个想法是,如果,则您可以制定一个规则,仅选择其中之一。您需要选择规则以拒绝回文(f (x )< f (x R),对于回文,您必须具有f (x )= f (x R))。您也可以更改字母二进制字母只是为了快速获得答案。
上面的 L和 L '不规则。并且每种反回文语言都将是非常规语言,并且可能与非RE语言一样糟糕。不确定语言的说明: L = { x | 使得 b 我Ñ 一个ř ý (X )< b 我Ñ 一个ř ý (X - [R )如果两个 X和 X - [R ∉暂停或两个 X和 X - [R ∈暂停,否则如果 暂停 }
克劳斯·德拉格(Klaus Draeger)在下面的评论中解释说,答案开头给出的反回文语言是上下文无关的:
关于生成一些示例:
以@shreesh的答案为基础,我们可以证明每种反回文语言都必须采用以下形式: 用于某些严格的总排序 <。
确实,给定任何抗回文,我们可以定义一个相关的<,如下所示。我们首先采取任何枚举X 0,X 1,...的{ 0 ,1 } *,其中每个字只出现一次。然后,我们更改枚举:对于每对非回文字母x ,x R,我们交换它们的位置,以便使属于L的一个出现在另一个之前。新的枚举导致总排序<满足(* )。
定义为(∗ )的每个都是非回文的,因此,(∗ )是非回文语言的完整表征。
在解决原始问题时,我们现在知道,可以通过编制命令<获得反回文语言的几个示例。我们也知道这样做不会将自己限制在语言的子类中,从而失去通用性。
关于“这些语言是否可以正常使用?”的问题:
为了证明任何抗回文是不规则的,可以通过矛盾假定它是规则的。
从最后的陈述中,我们可以通过抽水得出一个矛盾。(例如,请参阅此处的解决方案)