- 19, Oct 2024
- #1
Дана последовательность оснований аденина, цитозина, гуанина и тимина (закодированная как
), you're to produce an ASCII art representation of a corresponding double strand of DNA.ATG 2e4a906c44a96fe84134bf4346adf11c (this is the above example) C e3648b8960967463784818c3eee57246 TTT 6028a90b05775905ef1a00e7a45463c5 TAGCAT 3b834d2b7b9adc4113ffabd52d354c41 GATTACA a19463f965c641d071e07da59d64a418
Прядь вытянется вертикально. Левая цепочка — это та, которую вам дают в качестве входных данных. Правая прядь будет ее дополнением. Для тех, кто не знаком с ДНК, O O--
\\ /
P
/ \
--O O OH
/ |
< N NH2 ..... O * |
\ // \ / \\ / |
+--O // ---- ---- |
| \ | // \\ / \\ |
| >--N--< N ...... HN > ---+
| / \ / \ / / |
+--- N=== ---N--< |
| // \ |
| O O--+
| \
| >
| /
O O O O--
\\ / \ /
P P
/ \ / \\
--O O * O ..... H2N N O O
/ \ // \ / \\ |
< ---- ---- \\ ---+
\ // \ // \\ | / |
+--O < NH ...... N >--N--< |
| \ \ / \ / \ |
| >--N--- ===N O--+
| / \\ \
+--- O >
| /
O O O O--
\\ / \ /
P P
/ \ / \\
--O O O O
/ |
< N O ..... H2N |
\ // \ // \ |
+--O // ---- ---- |
| \ | // \ // \\ |
| >--N--< NH ...... N > ---+
| / \ / \ / / |
+--- N=== ---N--< |
| \ // \ |
| NH2 ..... O O--+
| \
| >
| /
OH O O--
\ /
P
/ \\
--O O
is paired with ATG
и --
is paired with O
. Кроме того, по обе стороны от двойной цепи имеется структура основной цепи, идентичная для всех оснований. Итак, если вам дали входные данные OH
the large-scale structure of the ASCII art would be:
O
где O O
\\ /
P
/ \
--O O * O ..... H2N N
/ \ // \ / \\ |
< ---- ---- \\ ---+
\ // \ // \\ | / |
+--O < NH ...... N >--N--< |
| \ \ / \ / \ |
| >--N--- ===N O--+
| / \\ \
+--- O >
| /
O O--
\ /
P
/ \\
O O
represents the backbone. Now each of these letters stands for an entire molecule and you're to reproduce the реальная молекулярная структура.
Базы
Используйте следующие шаблоны1 для каждого из оснований (каждое отображается вместе с дополнительным основанием и двумя молекулами основной цепи):
1Благодарим Питера Тейлора за помощь с макетом ASCII.
Аденин
O O
\\ /
P
/ \
--O O
/ |
< N O ..... H2N |
\ // \ // \ |
+--O // ---- ---- |
| \ | // \ // \\ |
| >--N--< NH ...... N > ---+
| / \ / \ / / |
+--- N=== ---N--< |
| \ // \ |
| NH2 ..... O O--+
| \
| >
| /
O O--
\ /
P
/ \\
O O
Цитозин
O O
\\ /
P
/ \
--O O NH2 ..... O N
/ / \\ / \\ |
< ---- ---- \\ ---+
\ // \\ / \\ | / |
+--O < N ...... HN >--N--< |
| \ \ / \ / \ |
| >--N--- ===N O--+
| / \\ / \
+--- O ..... H2N >
| /
O O--
\ /
P
/ \\
O O
Гуанин
O O
\\ /
P
/ \
--O O
/ |
< N NH2 ..... O * |
\ // \ / \\ / |
+--O // ---- ---- |
| \ | // \\ / \\ |
| >--N--< N ...... HN > ---+
| / \ / \ / / |
+--- N=== ---N--< |
| // \ |
| O O--+
| \
| >
| /
O O--
\ /
P
/ \\
O O
Тимин
B
Создание двойной нити
Они повторяются вертикально, так что в структуре позвоночника не остается пробелов. Это означает, что ограничивающие рамки этих четырех шаблонов будут перекрываться.
Нижний конец левой и верхний конец правой магистрали подключатся к BTAB
BATB
BGCB
BCGB
BATB
BTAB
of an TAGCAT
.
Бесплатное G
at the top end of the left and bottom end of the right backbone will have a free bond going inwards, indicated by C
.
Пример T
A
Еще примеры:
Вот MD5-хэши еще нескольких примеров (без посторонних начальных и конечных пробелов):
ACGT
Дайте мне знать, если вы считаете, что что-то из этого неверно.
Если вы не знаете, как надежно проверить хэши результатов, попробуйте этот онлайн-генератор MD5. Убедитесь, что нет разрыва конечной строки.
Дальнейшие примечания
Ты может используйте начальные или конечные пробелы по своему усмотрению. Конечно, если вы используете ведущие пробелы, их должно быть одинаковое количество в каждой строке.
Если я допустил какие-либо ошибки при копировании химической структуры, приведенные выше шаблоны по-прежнему являются нормативными для целей этой задачи.
Вы можете написать функцию или программу, которая принимает входные данные нить в качестве параметра, аргумента командной строки через STDIN или ожидает, что он будет сохранен в переменной. Запишите полученное изображение ASCII в STDOUT.
Это кодовый гольф, поэтому побеждает самый короткий ответ (в байтах).
#код-гольф #ascii-art #колмогоров-сложность #химия