Dados os 95 caracteres imprimíveis em ASCII mais a nova linha, divida-os em dois grupos iguais de 48 caracteres (a seguir denominados grupo A e grupo B). Crie um mapeamento individual de sua escolha (você tem total discrição) entre os dois grupos. Em outras palavras, A
pode mapear a
e vice-versa, mas A
também pode mapear >
e vice-versa, se é isso que você precisa para o seu programa.
Depois de dividir o ASCII em dois grupos, escreva dois programas e / ou funções, usando apenas os caracteres de cada grupo, respectivamente. Em outras palavras, escreva um programa / função que use apenas os caracteres do grupo A e outro programa / função que use apenas os caracteres do grupo B.
Esses programas devem poder receber um caractere como entrada. O programa escrito com os caracteres do Grupo A deve gerar / retornar o mesmo caractere se a entrada for um caractere do grupo A e o caractere do grupo A mapeado se receber um caractere do grupo B; o programa do grupo A deve sempre gerar um caractere do grupo A. Da mesma forma, o programa do Grupo B deve exibir o mesmo caractere se for um caractere do grupo B e o caractere do grupo B mapeado se a entrada for um caractere do grupo A.
Isso pode não ser tão claro, então aqui está um exemplo. Se você presumir que todas as letras maiúsculas estão no grupo A e todas as letras minúsculas no grupo B e você escolheu que o mapeamento um para um dessas letras seja de uma para a outra, então: aqui estão alguns entradas / saídas de amostra:
Programa A:
Input Output
A A
D D
a A
q Q
Programa B:
Input Output
A a
D d
a a
q q
Outras regras:
- Os dois programas não precisam estar no mesmo idioma.
- Eles não precisam ser os dois programas ou as duas funções; um poderia ser um programa, o outro uma função, tudo bem.
- Eles não precisam trabalhar da mesma maneira, ter comprimento semelhante, algo assim; eles simplesmente precisam cumprir as outras regras acima.
- Sim, apenas um dos seus programas pode usar novas linhas e apenas um pode usar espaços (pode ser o mesmo ou um programa diferente).
- Você não precisa usar todos os 48 caracteres em cada programa.
As brechas padrão são proibidas, como de costume. Todos os programas devem ser independentes, sem arquivos que contenham o mapeamento escolhido.
Critérios de pontuação: código-golfe . Especificamente, a soma dos bytes do texto dos dois programas.
Poste sua resposta assim:
Idioma - # bytes + Idioma - # bytes = # bytes
Uma descrição inequívoca do seu mapeamento. Se for complicado, use um gráfico como este:
ABCDEFGHIJKLMNOPQRSTUVWXYZ (etc.) zyxwvutsrpqonmlkjihgfedcba (etc.)
Ou, você pode apenas explicá-lo (primeiros 48 mapas para os últimos 48 em sequência), seguido por sua resposta normalmente.
+
e >
, e o outro usando -
e <
. Em seguida, você deve tentar gerar os operadores ausentes, como um ,
ou .
no programa que não pode usá-los.