sestina는 우리가 생성 할 수있는 흥미로운 패턴을 다음과시의 형식입니다. 여기에는 6 개의 6 줄로 된 6 개의 스탠자가 있으며, 첫 번째 스탠자의 각 줄의 마지막 단어는 각 연속 된 스탠자의 줄 끝을 설정 패턴으로 회전시킵니다. (마지막에는 3 줄 스탠자가 있지만 걱정하지 않아도됩니다.) 엘리자베스 비숍 (Elizabeth Bishop)의 창조적 인 이름 인 Sestina 의 첫 세 스탠자를 살펴 보십시오 .
9 월 비가 집에 떨어진다.
실패하는 빛에서, 늙은 할머니
는
Little Marvel Stove 옆에있는 아이와 함께 부엌에 앉아
, 연금술에서 농담을 읽고
웃으며 눈물을 숨기려고 이야기합니다.그녀는 자신의 전형적인 눈물
과 집 지붕에서 치는 비가
둘 다 예언에 의해 예언
되었지만 할머니에게만 알려 졌다고 생각합니다 .
철 주전자가 난로에서 노래합니다.
빵을 자르고 아이에게 말합니다.차를 마실 시간입니다. 그러나 그 아이
는
뜨거운 검은 난로에서 미친 것처럼 티케 틀의 작은 눈물이 춤을 추는 것을 지켜보고 있습니다
. 비는 집에서 춤을 추어 야합니다.
정리할 때 할머니
는 영리한 연감을 끊습니다...
각 줄이 "집", "할머니", "자식", "스토브", "연감"또는 "눈물"이라는 6 개 단어 중 하나로 끝나는 점에 유의하십시오. 뿐만 아니라 단어는 이전 스탠자에 대해 패턴 6–1–5–2–4–3으로 정렬됩니다. 그것은 나선처럼 보입니다.
프로그래밍 방식으로 전체 sestina를 생성하는 데 몇 년이 걸리지 만 각 스탠자의 끝 단어가 올바른 순서로 표시되는 템플릿을 만들 수 있습니다. 여섯 줄의 끝 단어가 주어지면 다음 규칙에 따라 sestina의 청사진을 출력하는 프로그램이나 함수를 작성하십시오. 입력에 대한 예상 결과는 다음과 같습니다 house grandmother child stove almanac tears
.
house
grandmother
child
stove
almanac
tears
tears
house
almanac
grandmother
stove
child
child
tears
stove
house
grandmother
almanac
almanac
child
grandmother
tears
house
stove
stove
almanac
house
child
tears
grandmother
grandmother
stove
tears
almanac
child
house
첫 번째 스탠자는 원래 순서대로 단어이고, 두 번째 스탠자는 첫 번째에서 6-1-5-2-4-3 순서입니다. 세 번째 스탠자는 두 번째 스탠자, 스탠자 6까지의 순서입니다.
입력 단어는 항상 글자, 대문자 또는 소문자 일 것이라고 가정하십시오. 문자열 배열이나 문자가 아닌 문자 (공백, 줄 바꿈 등)로 구분 된 단일 문자열로 사용할 수 있습니다. 출력에서 행은 개행 ( 0x0A
)으로 구분되고 스탠자는 두 개의 개행으로 구분됩니다. 후행 줄 바꿈이 허용됩니다.
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이깁니다. 즉, 전체시의 구조를 압축하는 것이 더 짧을 수도 있지만 각 스탠자를 기반으로하는 몇 가지 솔루션을보고 싶습니다.
natural-language
태그의 장점이 확실하지 않습니다 . 입력이 6 개의 횡설수설 인 경우에도 알고리즘은 동일합니다.