Формального доказательство может быть получен с помощью насосной леммы для регулярных языков следующим образом:
Пусть язык является регулярным. Поэтому он должен удовлетворять лемме о перекачке для целочисленного числа const. Пусть s
- любая строка с равным числом 0s и 1s. Тогда s можно разделить на 3 части х, у, г, такие, что |xy|<=p
, |y|>0
, то x(y^i)z
, где i>=0
должны также принадлежат L.
Позвольте мне разделить строку следующим образом:
y
является часть строки, которая имеет не равное число 0s и 1s.
x
может быть подстрокой s
до y
.
z
может быть частью после y
.
Теперь, если я «откачать» строку, взяв i = 0
, то оставшаяся строка будет только xz
, которые, безусловно, имеют неодинаковое число 0 и 1, которые не принадлежат к языку L.
Таким образом, мы достигли противоречия, поскольку мы ранее предполагали, что L является регулярным.
Таким образом, это не является регулярным.
Если это было немного трудно понять вышеприведенную часть, рассмотрите пример. Пусть p является целым числом 5. Пусть 0+1000+11101
- строка в L. (+ указывает на конкатенацию) Позвольте мне взять x как «0
», y be "1000"
, z - оставшаяся часть 11101
. Тогда, если мы выполним x(y^i)z
с i=0
, оставшаяся строка будет 011101
, которая не является частью L. Таким образом, нерегулярно.
Примечание: пример был просто образцом, чтобы вы поняли логику. Невозможно определить значение p случайным образом.
Возможно, вы имеете в виду 'count', а не' sum'. – Kobi
@ Kobi есть какая-то теория эзотерического языка, которую вы пытаетесь сделать? В противном случае сумма «n» 1s совпадает с числом «n» 1s. – Alnitak
Помогает ли это: http://www.cs.nott.ac.uk/~txa/g51mal/notes-3x.pdf? –