염기 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 생성기는 내 해시에 동의합니다.