도전
Dürer의 유명한 매직 스퀘어 의 배열 또는 문자열 표현을 출력하십시오 .
그건,
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
이 사각형의 일부 속성 은 다음과 같이 활용 될 수 있습니다.
- 각 정수
1를16정확히 한 번에 포함합니다. - 각 열 또는 행의 합과 두 대각선의 합은 동일합니다. 이것은 매직 스퀘어 의 정의 속성입니다 . 합계는 제곱 의 마법 상수 입니다.
- 또한,이 특정 제곱에 대해, 4 개의 사분면 각각의 합은 중심 4 제곱의 합과 코너 4 제곱의 합과 마찬가지로 마법 상수와 같습니다.
규칙
매직 스퀘어를 생성하는 Bultin은 허용되지 않습니다 (예 : Matlab magic또는 Mathematica MagicSquare). 다른 내장 기능을 사용할 수 있습니다.
코드는 프로그램 또는 함수일 수 있습니다.
입력이 없습니다.
숫자는 10 진수 여야합니다. 출력 형식은 평소처럼 유연합니다. 몇 가지 가능성은 다음과 같습니다.
중첩 배열 (함수 출력 또는 문자열 구분 기호 (구분 기호 포함 또는 제외), 모든 유형의 일치하는 괄호) :
[[16, 3, 2, 13], [5, 10, 11, 8], [9, 6, 7, 12], [4, 15, 14, 1]]2D 배열 :
{16, 3, 2, 13; 5, 10, 11, 8; 9, 6, 7, 12; 4, 15, 14, 1}네 개의 문자열로 구성된 배열 또는 네 개의 줄로 구성된 문자열 숫자는 오른쪽 정렬 일 수 있습니다
16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1또는 왼쪽 정렬
16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1행과 열에 대해 두 개의 다른 구분 기호가있는 문자열
16,3,2,13|5,10,11,8|9,6,7,12|4,15,14,1
출력 형식은 행과 열을 명확하게 구분해야합니다. 예를 들어, 플랫 배열 또는 모든 숫자가 공백으로 구분 된 문자열을 출력 할 수 없습니다.
코드 골프. 최단 승리.
[15]한 다음 각각 13, 3, 8 및 15로 XOR 된 각 항목과 그 반대로 반복하여 연결할 수 있습니다.
