아핀 프랙탈을 만들 수있는 가장 작은 프로그램을 작성하십시오. 아래 규칙과 동일한 결과를 생성하는 느낌이 드는 방법을 사용할 수 있습니다. 제안 된 방법으로 아이디어를 사용할 필요는 없습니다!
프로그램은 두 개의 입력을 취합니다. 첫 번째 074
는 0에서 7까지의 세 자릿수 형식 으로 패턴을 정의합니다 . 두 번째 입력은 크기를 정의하고 3
8x8 4
이되고 16x16이됩니다 (2 ^ n). 프로그램은 0 (1x1)에서 5 (32x32) 이상의 모든 크기에 대해 올바른 결과를 출력해야합니다. 더 높은 숫자에 대한 출력을 생성하는 경우 정확해야합니다. 즉, 특정 크기까지 올바른 출력을 생성해야하지만 잘못된 경우 해당 크기보다 큰 출력을 생성하지 않아야합니다. ASCII 아트 (1GB)의 경우 이미 크기가 최대이므로 최대 크기는 15 (32768x32768)입니다.
8x8 패턴은 다음과 같습니다 (rule 160
). 가장 왼쪽 숫자는 블록 A
, 중간 숫자 (무례한 생각은하지 마십시오!), 블록의 B
가장 오른쪽 숫자는 블록 C
입니다. 프랙탈을 구성하려면 두 차원 모두에서 절반으로 축소하고 블록에 회전 / 미러링 규칙을 적용하십시오. 패턴을 축소하려면 패턴을 2x2 영역으로 균일하게 나눕니다. 각 영역에 3 개의 보이는 문자가 있거나없는 문자가 있습니다. 보이는 문자가있는 경우 작은 블록의 적절한 위치에 문자를 배치하고 그렇지 않으면 공백을 배치하십시오. 규칙 0
- 3
규칙, 미러링되지 않습니다 4
- 7
미러링됩니다. 규칙 0
및 4
회전되지 않습니다 1
및 5
시계 방향으로 90도 회전, 2
및6
180도 회전 3
하고 7
시계 방향으로 270도 회전합니다. A
왼쪽 상단, B
왼쪽 C
하단 및 오른쪽 하단에 표시된 순서대로 3 개의 블록을 연결합니다 .
AAA
AA A
AA
A
BBB CC
B BBC
BBCCC
B CCC
규칙 번호로 회전 및 미러링 된 축소 :
0 1 2 3 4 5 6 7
---- ---- ---- ---- ---- ---- ---- ----
AA BAA CCB C C BCC AAB AA
A BB A CBB CC CC BBC A BB A
BBC CC A A BB BB A A CC CBB
BCC C AA AAB BAA AA C CCB
규칙 :
- 미러링되지 않음, 시계 방향으로 90도 회전
- 미러링되지 않음, 시계 방향으로 180도 회전
- 미러링되지 않음, 시계 방향으로 270도 회전
- 미러링되었지만 회전하지 않음
- 미러링 된 후 시계 방향으로 90도 회전
- 미러링 된 후 시계 방향으로 180도 회전
- 미러링 된 후 시계 방향으로 270도 회전
- 규칙 0 : 미러링되지 않음, 회전되지 않음
미러링은 항상 먼저 수행되며 빈 모서리를 통해 대각선으로 수행됩니다 (예 : 규칙 0 대 규칙 4).
0 4
---- ----
AA / C /
A / CC/
BBC BB A
/BCC /BAA
만은 규칙 1
, 6
그리고 0
순서대로, 위의 패턴으로 사용됩니다. 변환이 적용되고 블록이 함께 스티칭 된 후 각 블록을 한 칸씩 간격을두고 제외하고는 아래와 같습니다. 코드에는이 여분의 공간이 없습니다. 이미지를 "부모"이미지와 비교하면 동일한 위치에 보이는 문자가있는 것을 볼 수 있습니다.
BAA
BB A
CC
C
AAB AA
A BB A
CC BBC
C BCC
축소하지 않고 이미지를 생성하는 다른 방법은 다음과 같습니다. 한 문자로 시작하십시오.
X
세 개의 블록 각각에 대해 변형을 적용하고 (단 하나의 문자이므로 없음) 블록을 함께 연결하십시오.
X
XX
세 블록 각각에 대해 변환을 다시 적용하십시오.
1
--
XX
X
6 0
-- --
XX X
X XX
함께 스티치 :
XX
X
XXX
XXX
세 블록 각각에 대해 변환을 다시 적용하십시오.
1
----
XXX
XX X
XX
X
6 0
---- ----
XXX XX
X XX X
XX XXX
X XXX
함께 스티치 :
XXX
XX X
XX
X
XXX XX
X XXX
XXXXX
X XXX
패턴의 보이는 부분에는 인쇄 가능한 문자 (0x21-0x7E)를 사용할 수 있지만 공백에는 공백 문자 (0x20) 만 사용할 수 있습니다. 후행 공백은 허용되지만 전체 정사각형 외부에는 공백이 없어야합니다 (즉, 8x8 정사각형의 경우 8 열 이후에는 문자가있을 수 없음).
512 개의 서로 다른 규칙이 있지만 그 중 일부는 동일한 패턴을 생성합니다. 보조 노트 같은 임의 패턴 만 함유 0
하고 4
시어 핀 스키 삼각형 (8 다른 규칙)를 생성한다.
원하는 패턴과 패턴을 생성하는 규칙을 선택적으로 게시 할 수 있습니다. 그럴 경우 비슷한 규칙과 구별하기 위해 크기가 3 (8x8) 이상인지 확인하십시오.