매일 알고리즘 ---- 파스칼의 삼각형

파스칼의 삼각형

  1. 각 숫자는 위의 두 수의 합과 동일하다.
  2. 대칭 1 씩 숫자의 각 행은 서서히 증가한다.
  3. 디지털 라인, n은 n 개의 항목이 있습니다.
  4. n 번째 행의 수 m은 즉, N-1 요소에서 m-1 요소가 다른 조합의 수를 취하고, C (N-1, m-1)로 표현 될 수있다.
  5. n 번째 행 및 속성의 개수 하나의 조합과 동일하게 N-m + 1 개 숫자의 수 m.
  6. 이전 라인에 대한 두 개의 숫자와 같은 각각의 자리. 이 속성은 전체 파스칼의 삼각형을 작성하는 데 사용할 수 있습니다. 즉, N + 1, i 번째 행의 여러 특성들의 조합 중 하나는 I-1, i 번째의 수와, 제 n 행의 합과 동일하다. 즉, C (N + 1, I) = C (N, I) + C (N, I-1).
  7. (A + B)에 계수 N의 확대 각 행 (N + 1) 파스칼의 삼각형의 대응하는 시퀀스이다.
  8. 제 번호 2N + 첫 번째 행의 1 번째 행의 2N + 2 번호 라인에 2N의 행 번호 + 3 ...... (5) 상기 제 2 및 피보나치 번째 이들 숫자 4N + 1의 제 4 행의 제 2N-1 번호, 행 번호 2N-2 ...... (6)이 제 4N-2 번째의 합 페이 상기 제 2 번호 2N의 첫 번째 행 (N> 1);리스 번호 그 증서 파도의 수.
  9. n 번째 행의 수는 승산 10 ^ 열의 개수가 위치한 대한 M, 그리고 11 ^ (N-1)에 첨가하여 상기 (M-1). 11 ^ 0 ^ 1 = 1,11 = 1 × ^ 0 + 1 × 10 ^ 1 = 11, 11 ^ 2 = 1 × 10 ^ 0 ^ + 2 × 1 × 1 + 2 ^ = 121,11 ^ 3 = 0 + 1 × ^ 3 × 10 ^ 1 + 3 × 10 ^ 2 + 1 × 3 = ^ 1331,11 ^ = 1 × 4 + 4 × ^ 0 ^ 1 + 6X10 ^ 2 + 4 × ^ 3 + 1 × 4 = ^ 14641,11 ^ 5 = 1 × 0 + ^ ^ 5 × 1 + 10 × 10 + 10 × 10 ^ 2 ^ 3 + 5 × ^ 4 + 1 × 10 ^ 5 = 161,051.
  10. n은 행 번호 2 ^ (N-1)이다. 1 = 2 ^ (1-0), 1 + 1 = 2 ^ (2-1) 1 + 2 + 1 = 2 ^ (3-1), 3 + 3 + 1 + 1 = 2 ^ (4-1 ) 1 + 4 + 6 + 4 + 1 = 2 ^ (5-1) 1 + 5 + 10 + 10 + 5 + 1 = 2 ^ (6-1).
  11. 모서리에 그의 숫자 대각선 오른쪽 상단 코너에 해당하는 숫자 중 하나. 1 + 2, 1 + 1 = 1 + 1 + 1 = 3,1 + 4,1 + 1 + 1 = 2 + 3,1 = 6,1 = 2 + 3 + 2 + 3 + 4 + = 10,1 3 = 3 + 4,1 + 6 + 4 = 10 1 = 5.
  12. 각 행의 왼쪽에있는 수치는 위에서 아래 오른쪽 디지털 데이터의 대각선 동일한 번호 피보나치 피보나치 시퀀스 왼쪽 정렬된다. 1 + 1 = 2 : 1, 2 + 1 = 3 + 1 = 3,1 + 5,3 + 8,1 + 4 + 1 = 5 + 1 = 6 + 10 + 13 + 6 + 1 = 4 21,1 + 7 + 10 + 15 + 20 + 1 = 34,5 + 21 + 8 + 1 = 55.


 /**
     * 打印杨辉三角
     *  是 二项式系数 在三角形中的一种几何排序
     */
    public function test()
    {
        echo "<pre>";
        $arr = [];
        $N = 10; //打印几层
        for($i = 0; $i<$N; $i++) { //几层
            for($m = 0;$m<$N-$i;$m++) {
                print_r(' ');
            }
            for($j = 0; $j<=$i; $j++)
            {
                if((0 == $j)||($i == $j)){
                    $arr[$i][$j] = 1;
                }else{
                    $arr[$i][$j] = $arr[$i-1][$j] + $arr[$i-1][$j-1];
                }
                print_r($arr[$i][$j]);
            }
            print_r("\n");
        }
    }

추천

출처www.cnblogs.com/zhy7blog/p/11247696.html