염기 Adenine, Cytosine, Guanine 및 Thymine (으로 인코딩 됨 ACGT
) 의 염기 서열이 주어지면 상응하는 이중 가닥 DNA의 ASCII 예술 표현을 생성해야합니다.
스트랜드는 수직으로 연장됩니다. 왼쪽 스트랜드는 입력으로 주어진 것입니다. 오른쪽 가닥이 그 보완 물이됩니다. DNA에 익숙하지 않은 사람들을 위해, A
함께 짝 T
과 C
함께 짝을 G
. 또한, 이중 가닥의 양쪽에는 모든 염기에 대해 동일한 골격 구조가 있습니다. 따라서 입력을 받았다 TAGCAT
면 ASCII 아트의 대규모 구조는 다음과 같습니다.
BTAB
BATB
BGCB
BCGB
BATB
BTAB
여기서 B
백본을 나타냅니다. 이제 각 글자는 전체 분자를 나타내며 실제 분자 구조 를 재현합니다 .
기지
각 염기에 대해 다음 템플릿 1 을 사용하십시오 (각각 상보성 염기 및 2 개의 골격 분자와 함께 표시됨).
1 ASCII 레이아웃에 도움을 준 Peter Taylor에게 감사의 말을 전합니다.
아데닌
O O
\\ /
P
/ \
--O O
/ |
< N NH2 ..... O * |
\ // \ / \\ / |
+--O // ---- ---- |
| \ | // \\ / \\ |
| >--N--< N ...... HN > ---+
| / \ / \ / / |
+--- N=== ---N--< |
| // \ |
| 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 O ..... H2N |
\ // \ // \ |
+--O // ---- ---- |
| \ | // \ // \\ |
| >--N--< NH ...... N > ---+
| / \ / \ / / |
+--- N=== ---N--< |
| \ // \ |
| NH2 ..... O O--+
| \
| >
| /
O O--
\ /
P
/ \\
O O
티민
O O
\\ /
P
/ \
--O O * O ..... H2N N
/ \ // \ / \\ |
< ---- ---- \\ ---+
\ // \ // \\ | / |
+--O < NH ...... N >--N--< |
| \ \ / \ / \ |
| >--N--- ===N O--+
| / \\ \
+--- O >
| /
O O--
\ /
P
/ \\
O O
이중 가닥 구성
이들은 수직 방향으로 반복되므로 백본 구조에 틈이 없습니다. 즉,이 네 가지 템플릿의 경계 상자가 겹치게됩니다.
권리 백본의 왼쪽과 상단의 하단은 연결됩니다 O
의 OH
.
무료 O
권리 백본의 왼쪽 하단의 맨 끝에서 무료 본드가는 안쪽에 의해 표시를해야합니다 --
.
예 ATG
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
더 많은 예 :
다음은 몇 가지 더 많은 예제의 MD5 해시입니다 (외부 선행 또는 후행 공백 없음).
ATG 2e4a906c44a96fe84134bf4346adf11c (this is the above example)
C e3648b8960967463784818c3eee57246
TTT 6028a90b05775905ef1a00e7a45463c5
TAGCAT 3b834d2b7b9adc4113ffabd52d354c41
GATTACA a19463f965c641d071e07da59d64a418
이 중 하나라도 잘못 생각하면 알려주십시오.
결과의 해시를 확실하게 확인하는 방법을 잘 모를 경우이 온라인 MD5 생성기를 사용해보십시오 . 후행 줄 바꿈이 없는지 확인하십시오.
추가 사항
적합하다고 생각되는대로 앞뒤 공백을 사용할 수 있습니다 . 물론 선행 공백을 사용하는 경우 각 줄에서 동일한 양이어야합니다.
화학 구조를 복사 할 때 실수를 한 경우에도 위의 템플릿은이 과제의 목적을위한 규범입니다.
STDIN을 통해 입력 문자열 을 매개 변수, 명령 행 인수로 사용하거나 변수에 저장 될 것으로 예상 되는 함수 또는 프로그램을 작성할 수 있습니다 . 결과 ASCII 아트를 STDOUT에 씁니다.
이것은 코드 골프이므로 가장 짧은 대답 (바이트)이 이깁니다.
TTT
문자열에 후행 줄 바꿈이 포함되어 있기 때문에 해시도 수정했습니다 .
ATG
출력을 복사 하고 다른 체크섬을 얻었습니다. 그리고 다른 OS는 다른 체크섬을 얻습니다. 당신은 이것들을 사용해 볼 수 있습니다 unix2dos, unix2mac...
.
Digest::MD5.hexdigest()
유닉스 스타일 라인 엔딩과 함께 Ruby를 사용했습니다 . 또한 그들 중 어느 것도 후행 줄이 없습니다. 여기에 붙여 넣으십시오 -이 온라인 MD5 생성기는 내 해시에 동의합니다.