매시업 시간!
이것은 오늘의 랜덤 골프 와 옵티마이 저의 ASCII Art of the Day 시리즈의 5 부입니다. 이 챌린지에서 제출 한 내용은 두 개의 리더 보드 (링크 된 게시물을 찾을 수 있음)에 반영됩니다. 물론, 이것을 다른 코드 골프 도전과 같이 취급하고 어느 시리즈에 대해 전혀 걱정하지 않고 대답 할 수 있습니다.
홀 5 : 다이아몬드 타일링
일반 육각형은 항상 다음과 같이 다이아몬드로 타일링 할 수 있습니다.
이 타일링의 ASCII 아트 표현을 사용합니다. 측면 길이가 2 인 육각형의 경우 20 개의 타일이 있습니다.
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
/\_\_\ /\_\_\ /\_\_\ /\_\_\ /_/\_\ /_/\_\ /\_\_\ /_/\_\ /_/\_\ /_/\_\
/\/\_\_\ /\/_/\_\ /\/_/_/\ /\/_/\_\ /\_\/\_\ /\_\/_/\ /\/_/_/\ /\_\/\_\ /\_\/_/\ /_/\/\_\
\/\/_/_/ \/\_\/_/ \/\_\_\/ \/_/\/_/ \/\_\/_/ \/\_\_\/ \/_/\_\/ \/_/\/_/ \/_/\_\/ \_\/\/_/
\/_/_/ \/_/_/ \/_/_/ \_\/_/ \/_/_/ \/_/_/ \_\/_/ \_\/_/ \_\/_/ \_\/_/
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
/_/_/\ /\_\_\ /_/\_\ /_/_/\ /_/\_\ /_/\_\ /_/_/\ /_/_/\ /_/_/\ /_/_/\
/\_\_\/\ /\/_/_/\ /_/\/_/\ /\_\_\/\ /\_\/_/\ /_/\/_/\ /_/\_\/\ /\_\_\/\ /_/\_\/\ /_/_/\/\
\/\_\_\/ \/_/_/\/ \_\/\_\/ \/_/\_\/ \/_/_/\/ \_\/_/\/ \_\/\_\/ \/_/_/\/ \_\/_/\/ \_\_\/\/
\/_/_/ \_\_\/ \_\/_/ \_\/_/ \_\_\/ \_\_\/ \_\/_/ \_\_\/ \_\_\/ \_\_\/
측면 길이가 주어지면 측면 길이 N
가 6 각형 인 타일을 N
임의로 생성해야합니다 . 정확한 분포는 중요하지 않지만 각 타일링은 0이 아닌 확률로 반환되어야합니다.
의 경우 N ≤ 4
제출시 시간의 80 % 이상이 1 분 이내에 타일링을 생성하고 1 분 내에 타일링의 80 % 이상이 생성되어야합니다. 대부분의 접근법은이 규칙에 대해 걱정할 필요가 없습니다 (매우 관대합니다)-이것은 타일링이 될 때까지 임의의 문자열을 생성하는 매우 순진한 거부 기반 알고리즘을 배제하는 것입니다.
주어진 N에 가능한 총 타일 수는 OEIS A008793 에서 찾을 수 있습니다 .
전체 프로그램 또는 함수를 작성하고 STDIN (또는 가장 가까운 대안), 명령 행 인수 또는 함수 인수를 통해 입력을 받고 STDOUT (또는 가장 가까운 대안), 함수 리턴 값 또는 함수 (out) 매개 변수를 통해 출력을 생성 할 수 있습니다.
육각형을 정렬하는 데 필요한 것보다 많은 선행 공백을 출력해서는 안됩니다 (육각형의 왼쪽 모서리에는 공백이 없어야 함). 각 선은 N
후행 까지 포함 할 수 있습니다 (일관되게 반드시 정할 필요는 없으므로 육각형 경계 상자를 인쇄하여 직사각형 출력을 가질 수 있음).
이것은 코드 골프이므로 가장 짧은 제출 (바이트)이 이깁니다. 물론 사용자 당 가장 짧은 제출물도 시리즈의 전체 순위표에 들어갑니다.
리더 보드
각 시리즈의 첫 번째 게시물은 리더 보드를 생성합니다.
답변이 표시되도록하려면 다음 마크 다운 템플릿을 사용하여 모든 답변을 헤드 라인으로 시작하십시오.
# Language Name, N bytes
N
제출물의 크기는 어디에 있습니까 ? 당신이 당신의 점수를 향상시킬 경우에, 당신은 할 수 있습니다 를 통해 눈에 띄는에 의해, 헤드 라인에 오래된 점수를 유지한다. 예를 들어 :
# Ruby, <s>104</s> <s>101</s> 96 bytes
(언어는 현재 표시되어 있지 않지만 스 니펫은이를 요구하고 구문 분석하며 향후 언어 별 리더 보드를 추가 할 수 있습니다.)
For N ≤ 4, your submission must produce a tiling within 1 minute at least 80% of the time.
너무 쉽다 : 80 %의 시간이 같은 기본 타일링, 그렇지 않으면 내가 원하는 시간에 다른 타일링을 찾는다