Como as soluções de uma equação diofantina podem ser expressas como uma linguagem?

7

Foi-me dada a pergunta

Onde o idioma a seguir se encaixa na hierarquia de Chomsky?

Soluções não negativas (x,y) para a equação diofantina 3xy=1.

Eu entendo idiomas como L={0n1nn1}, mas esse idioma me confunde. Como são as palavras no idioma? Como eu poderia representá-lo usando uma gramática ou expressão regular?

justausr
fonte
Para a solução do exercício, consulte Linguagem do gráfico de uma função afim
Gilles 'SO- stop be evil'

Respostas:

5

A primeira coisa que você deseja fazer é olhar para a própria frase e ignorar todas as referências a idiomas por um momento.

Então, quais são as soluções não negativas para a equação diofantina 3xy=1? Se consertarmos algunsx, então y=3x1. Isso significa que o conjunto de soluções é{(x,3x1) | x>0} (Observe que x=0 produz um negativo ye positivo x produz um positivo y)

Agora, podemos associar uma string a qualquer par de números não negativos (x,y): por exemplo, (100,299)pode ser associado à sequência (100, 299). Se aplicarmos isso a todos os pares do conjunto, o conjunto de seqüências resultante será o idioma desse conjunto. Observe que a pergunta realmente não deixa claro como associar uma string a uma solução, mas tenho certeza de que elas significam o que foi dito acima.

Agora tudo o que você precisa fazer é descobrir em que nível da hierarquia de Chomsky esse idioma se enquadra. Como tenho uma leve suspeita de que essa é uma pergunta de lição de casa, não vou derramar o feijão imediatamente. Se você puder confirmar que essa não é uma pergunta de lição de casa e ainda precisar de ajuda, editarei a resposta em

Alex ten Brink
fonte
É para lição de casa. Eu sei que o problema de geração para isso só pode ser solucionado por uma máquina de turing ou equivalente. Eu posso ver como seria o problema de reconhecimento também, então meu pensamento seria que a classe chomsky mais específica é recursiva. Não tenho idéia de como mostrar que não é sensível ao contexto.
justausr
@justausr A linguagem é sensível ao contexto: uma linguagem é sensível ao contexto se puder ser analisada por algum programa usando o não-determinismo e no máximo o espaço linear (portanto, sem limite de tempo). Tenho certeza de que posso analisar 100, calcular 100 * 3-1 e verificar se é igual a 299 no tempo linear e, portanto, no espaço linear, o que torna essa linguagem sensível ao contexto.
Alex-Brink
meus pensamentos sobre questões de casa para que vale a pena, meta.cs.stackexchange.com/a/174/596
justausr
@AlextenBrink: A multiplicação leva tempo quadrático nas TMs, mas o espaço linear deve funcionar.
Raphael
@ Rafael A multiplicação de dois números inteiros arbitrários é quadrática, mas multiplicar um número inteiro arbitrário por alguma constante fixa seria linear, não é?
22712 Ben
5

A declaração do problema é realmente incompleta, mas quando você vê isso, pode assumir com segurança que “ representando números inteiros em notação decimal ” ou “ representando números inteiros em notação binária ” foi feito.


Então, aqui, se assumirmos notação binária, o alfabeto é contém 5 caracteres: 0, 1, (, )e ,. Se assumirmos notação decimal, o alfabeto seria adicionalmente, conter os dígitos 2através 9.

O idioma em questão é um subconjunto do idioma correspondente à expressão regular ((0|1),(0|1))(indo com notação binária). Se assumirmos o caso mais simples da equação2xy=0, então o idioma seria todos os pares de números (x,y) de tal modo que y=2x. Em binário, isso significay é xcom um adicional 0no final. Em outras palavras, o idioma consistiria em palavras da forma(x,x0). Onde isso se encaixa na hierarquia de Chomsky?

Aqui, temos um exemplo mais complicado: você precisa reconhecer se y=3x1. Como expansões binárias (ou decimais) dex e y comparar quando y=3x11?

Gilles 'SO- parar de ser mau'
fonte
1

A questão não está completa, pois um idioma é um conjunto de palavras, não pares. Se você o codificar comox$y Onde x,y são binários, é sensível ao contexto, mas não livre de contexto (consulte a resposta de Gilles), se você o codificar como x$yR é livre de contexto, mas não é regular (exercício), se você intercalar adequadamente pedaços de x e y, é regular! Veja aqui .

sdcvvc
fonte
A resposta é ainda mais trivial se a codificação for unária. Mas então, essa resposta deve estar aqui , onde seria redundante.
Raphael
Raphael: Eu discordo, essa pergunta tem uma codificação bem definida de entrada. Esta pergunta não, e eu estou apontando que é importante.
Sdcvvc 22/03/12
Mas seus comentários sobre as classes em que o idioma resultante se enquadram não são úteis para esta pergunta; é apenas sobre como codificar coisas assim.
Raphael