Язык регулярный.
Подсказка: изгонять девятки
Доказательство идеи
Для и ,a=9b<9
построить автомат с состояниями, обозначенными от до . - начальное состояние, а одно конечное состояние - . Из состояния , на цифре , переход в состояние .9080bsd(s+d)mod9
Для обработки других значений , которые взаимно просты с ,a10
группируйте цифры в пакетах, чтобы найти некоторое такое, что делит (например, возьмите если потому что ).ka10k−1k=3a=37999=27×37
Для обработки значений которых только простые факторы и ,a25
обратите внимание, что это все о конечном числе цифр в конце.
Чтобы обобщить на все значения и ,ab
используйте тот факт, что объединение и пересечение регулярных языков являются регулярными, что конечные языки являются регулярными, и что кратные являются , кратными обоим, когда и взаимно просты.a1⋅a2a1a2
Обратите внимание, что мы используем любую удобную технику; три основных элементарных метода (регулярные выражения, конечные автоматы, теоретико-множественные свойства) представлены в этом доказательстве.
Подробное доказательство
Пусть с взаимно простым с . Пусть и . По элементарной арифметике числа, равные по модулю , в точности совпадают с числами, равными по модулю и по модулю , поэтому . Поскольку пересечение регулярных языков является регулярным, иa=2p5qa′a′10M′={a′x+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯∣x∈Z∧a′x+b≥0}M′′={2p5qx+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯∣x∈Z∧2p5qx+b≥0}baba′b2p5qM∩{x¯¯¯∣x≥b}=M′∩M′′∩{x¯¯¯∣x≥b}{x¯¯¯∣x≥b}является регулярным, потому что он является дополнением конечного (следовательно, регулярного) языка, если и также регулярны, то является регулярным; и, следовательно, регулярно, так как это объединение этого языка с конечным множеством. Поэтому для завершения доказательства достаточно доказать, что и регулярны.M′M′′M∩{x¯¯¯∣x≥b}MM′M′′
Начнем с , то есть числа по модулю . Целые числа, десятичное расширение которых находится в , характеризуются последними цифрами , поскольку изменение цифр далее слева означает добавление кратного который кратен . Следовательно, где - алфавит всех цифр, а - конечный набор слов длины и - это обычный язык.M′′2p5qM′′max(p,q)10max(p,q)2p5q0∗M′′=ℵ∗FℵFmax(p,q)M′′=(ℵ∗F)∩((ℵ∖{0})ℵ∗)
Теперь обратимся к , то есть числа по модулю где взаимно просты с . Если то - это множество десятичных разложений всех натуральных чисел, то есть , которое является обычный язык. Теперь предположим, . Пусть . По маленькой теореме Ферма, , то есть делит . Мы строим детерминированный конечный автомат, который распознает следующим образом:M′a′a′10a′=1M′M′={0}∪((ℵ∖{0})ℵ∗)a′>1k=a′−110a′−1≡1moda′a′10k−10∗M′
- Состояния: . Первая часть представляет позицию цифры, а вторая часть представляет число по модулю .[0,k−1]×[0,10k−2]10k−1
- Исходное состояние .(0,0)
- Существует переход, помеченный из в тогда и только тогда, когда и .d(i,u)(j,v)v≡d10i+umod10k−1j≡i+1modk
- Состояние является конечным, если (обратите внимание, что делит ).(i,u)u≡bmoda′a′10k−1
Состояние достигнутое из слова удовлетворяет и . Это можно доказать индукцией по слову, следуя переходам на автомате; переходы рассчитываются для этого, используя тот факт, что . Таким образом, автомат распознает десятичные разложения (с учетом начальных нулей) чисел вида с помощью ; так как , автомат распознает десятичные разложения чисел, равных по модулю позволяя начальные нули, что(i,u)x¯¯¯i≡|x¯¯¯|modku≡xmod10k−110k≡1mod10k−1u+y10ku≡bmoda′10k≡1moda′ba′0∗M′ . Таким образом, этот язык оказался регулярным. Наконец, является обычным языком.M′=(0∗M′)∩((ℵ∖{0})ℵ∗)
Чтобы обобщить до оснований, отличных от , замените и выше на все основные множители базы.1025
Формальное доказательство
Оставлено как упражнение для читателя, в вашем любимом доказательстве теоремы.