주니어는 전에 나에게 Java 인터뷰 질문을했지만 질문은 어렵지 않았습니다. Java로 Yang Hui Triangle을 구현하십시오. 나는 그것을 정리하는 데 시간이 걸렸고 그것이 매우 흥미 롭다는 것을 알았으므로 그것을 적어 놓고 공유하고 싶었습니다. 코드를 작성하기 전에 먼저 다음 두 가지 질문을 명확히하겠습니다.
Yang Hui Triangle이란 무엇입니까?
Yang Hui의 삼각형은 삼각형에서 이항 계수의 기하학적 배열입니다. 그것은 1261 년 우리 나라의 남부 노래 왕조 수학자 인 양호이 (Yang Hui)가 쓴 "9 개의 챕터 알고리즘에 대한 자세한 설명"에서 언급되었습니다. 유럽에서는 그림과 같이 파스칼 삼각형이라고합니다.
양 호이 삼각형
Yang Hui의 삼각형의 법칙이 원칙입니다
1. 각 숫자는 위의 두 숫자의 합과 같습니다.
2. 각 숫자 행은 왼쪽과 오른쪽으로 대칭이며 1에서 점차 커집니다.
3. 줄의 숫자는 n 용어를 가지고 있습니다.
4. N-th 라인 번호의 합은 2N-1입니다.
5. N 번째 행의 M의 수는 C (N-1, M-1), 즉 N-1 상이한 요소로부터 취한 M-1 요소의 조합 수로 표현 될 수있다.
6. 줄의 mth 숫자는 n-m+1 숫자와 같으며 이는 결합 된 숫자의 속성 중 하나입니다.
7. 각 숫자는 이전 줄의 왼쪽 및 오른쪽 번호의 합과 같습니다. 이 속성은 전체 Yang Hui Triangle을 작성하는 데 사용될 수 있습니다. 즉, N+1 행의 I-Th 숫자는 I-1 숫자의 합과 동일하며 N은 N의 I-Th 숫자와 동일하며, 이는 또한 결합 된 숫자의 속성 중 하나입니다. 즉, C (N+1, I) = C (N, I)+C (N, I-1)입니다.
8. (A+B) n의 확장 공식의 계수는 Yang Hui 삼각형의 (n+1) 라인의 각 항목에 해당합니다.
9. 2n+1 행에서 첫 번째 숫자를 연결하고, 3 번 숫자는 2n+2 라인, 5 번째 숫자는 2n+3의 5 번째 숫자이며,이 숫자의 합은 4N+1 Fibonacci 번호입니다. 2N-1 (n> 1)에서 두 번째 숫자를 전송하고, 네 번째 숫자는 2N-2 행에, 6 번째 숫자는 2N-2 행입니다 ...이 숫자의 합은 4N-2 Fibonacci 번호입니다.
10. 각 행에 숫자를 정렬하면 N-1의 11을 얻을 수 있습니다 (N은 행 수) 전력 : 1 = 11^0; 11 = 11^1; 121 = 11^2 ... n> 5가되면이 속성을 충족하지 않습니다. 이 시점에서 Nth 라인의 가장 오른쪽 숫자 "1"은 단일 자리에 배치 된 다음 왼쪽에서 10 자리 숫자의 숫자의 단일 자리를 정렬 한 다음 빈 공간을 "0"으로 채우고 모든 숫자를 함께 추가하면 N-1 전력을 정확히 추가합니다. N = 11을 예제로 취하는 숫자는 다음과 같습니다. 1,10,45,120,252,252,120,45,10,1, 결과는 25937424601 = 1110입니다.
이 두 가지 요점을 이해 한 후에, 우리의 생각은 매우 분명해집니다. 이를 구현하는 방법에는 여러 가지가 있습니다. 여기서는 2 차원 배열과 루프를 구현할 수있는 더블을 사용할 계획입니다.
데모 코드 :
public class yanghui {public static void main (String [] args) {// 2 차원 배열 int t [] [] = new int [10] []; // (int i = 0; i <t.length; i ++)에 대한 2 차원 배열의 첫 번째 레이어를 가로 지르십시오. {// 두 번째 레이어 배열의 크기를 초기화하십시오. t [i] = new int [i+1]; // (int j = 0; j <= i; j ++)에 대한 두 번째 레이어 배열을 가로 지르십시오 {// 양쪽의 배열 요소를 양쪽에 1에 할당합니다 (i == 0 || j == 0 || j == i) {t [i] [j] = 1; } else {// 다른 값은 공식 t [i] [j] = t [i-1] [j]+t [i-1] [j-1]에 의해 계산됩니다. } // 출력 배열 요소 System.out.print (t [i] [j]+"/t"); } // line break system.out.println (); }}}콘솔의 출력 결과는 다음과 같습니다.
Yang Hui Triangle의 10 개만 출력됩니다. 최적화하고 행의 수를 동적으로 얻을 수 있도록 변경할 수 있습니다. 또한 포지티브 삼각형으로 바뀔 수 있습니다. 공간을 계산하기 위해 루프를 추가하십시오. 관심있는 학생들은 그것을 시도 할 수 있습니다. --Java 18 번째 프로그래머에서
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.