Учитывая 95 печатных символов в ASCII плюс символ новой строки, разбейте его на две равные, 48 групп символов (далее называемые группой A и группой B). Создайте взаимно-однозначное сопоставление по вашему выбору (на ваше усмотрение) между двумя группами. Другими словами, A
может отображаться a
и наоборот, но A
может также отображаться >
и наоборот, если это то, что вам нужно для вашей программы.
Разобрав ASCII на две группы, напишите две программы и / или функции, используя только символы в каждой группе соответственно. Другими словами, напишите одну программу / функцию, которая использует только символы в группе A, и другую программу / функцию, которая использует только символы в группе B.
Эти программы должны быть в состоянии получить один символ в качестве ввода. Программа, написанная с символами в группе A, должна выводить / возвращать один и тот же символ, если ввод был символом группы A, и отображенный символ группы A, если он получил символ группы B; Программа группы А должна всегда выводить символ группы А. Точно так же программа группы B должна выводить один и тот же символ, если это символ группы B, и отображенный символ группы B, если ввод является символом группы A.
Это может быть не так ясно, так что вот пример. Если вы предполагаете, что все заглавные буквы находятся в группе A, а все строчные буквы - в группе B, и вы выбрали однозначное сопоставление этих букв от одного к другому, то: Пример ввода / вывода:
Программа А:
Input Output
A A
D D
a A
q Q
Программа Б:
Input Output
A a
D d
a a
q q
Другие правила:
- Две программы не обязательно должны быть на одном языке.
- Они не должны быть обеими программами или обеими функциями; один может быть программой, другой функцией, это нормально.
- Им не нужно работать одинаково, иметь одинаковую длину и все такое; они просто должны соответствовать другим правилам выше.
- Да, только одна из ваших программ может использовать символы новой строки, и только одна может использовать пробелы (это может быть та же самая или другая программа).
- Вам не нужно использовать все 48 символов в каждой программе.
Стандартные лазейки запрещены, как обычно.Все программы должны быть автономными, без файлов, которые вы выбрали.
Критерии оценки: код-гольф . В частности, сумма байтов текста двух программ.
Пожалуйста, оставьте свой ответ следующим образом:
Язык - # байт + Язык - # байт = # байт
Однозначное описание вашего отображения. Если это сложно, используйте диаграмму следующим образом:
ABCDEFGHIJKLMNOPQRSTUVWXYZ (etc.) zyxwvutsrpqonmlkjihgfedcba (etc.)
Или вы можете просто объяснить это (сначала 48 карт, затем последние 48 в последовательности), а затем ваш ответ как обычно.
+
и >
, а другая - -
и <
. Затем вы должны попытаться сгенерировать недостающие операторы, такие как ,
или .
в программе, которые не могут их использовать.