Hướng dẫn pascal triangle in python without using function - tam giác pascal trong python mà không cần sử dụng hàm

Tam giác Pascal sườn là một mô hình của tam giác dựa trên NCR, dưới đây là biểu diễn hình ảnh của Tam giác Pascal.

Example:

Input: N = 5
Output:
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1

Phương pháp 1: Sử dụng công thức NCR, tức là N!/(N-R)! R!Using nCr formula i.e. n!/(n-r)!r!

Sau khi sử dụng công thức NCR, biểu diễn hình ảnh trở thành:

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3

Algorithm:

  • Lấy một số hàng để được in, giả sử nó là n
  • Làm cho phép lặp bên ngoài I từ 0 đến n lần để in các hàng.
  • Tạo lần lặp bên trong cho J từ 0 đến (n ​​- 1).
  • In không gian trống đơn.
  • Đóng vòng bên trong (vòng J) // nó cần thiết cho khoảng cách bên trái.
  • Tạo lần lặp bên trong cho J từ 0 đến i.
  • In NCR của I và J.
  • Đóng vòng bên trong.
  • In ký tự dòng mới (\ n) sau mỗi lần lặp bên trong.

Implementation:

Python3

from math import

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
0

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
1
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
2
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
3

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
4
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
5
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
6
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
7
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
8

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
9
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
4
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
1
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
6
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
4
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
5
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
6
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
9

C(line, i) = C(line, i-1) * (line - i + 1) / i
0
C(line, i) = C(line, i-1) * (line - i + 1) / i
1
C(line, i) = C(line, i-1) * (line - i + 1) / i
2
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
2
C(line, i) = C(line, i-1) * (line - i + 1) / i
4
C(line, i) = C(line, i-1) * (line - i + 1) / i
5

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
9
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
4
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
1
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
6
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
1
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
9

C(line, i) = C(line, i-1) * (line - i + 1) / i
0
C(line, i) = C(line, i-1) * (line - i + 1) / i
1
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8
11**0 = 1
11**1 = 11
11**2 = 121
11**3 = 1331
0
11**0 = 1
11**1 = 11
11**2 = 121
11**3 = 1331
1
11**0 = 1
11**1 = 11
11**2 = 121
11**3 = 1331
2
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
5
11**0 = 1
11**1 = 11
11**2 = 121
11**3 = 1331
4
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
2
C(line, i) = C(line, i-1) * (line - i + 1) / i
4
C(line, i) = C(line, i-1) * (line - i + 1) / i
5

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
9
C(line, i) = C(line, i-1) * (line - i + 1) / i
1
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
0

Output:

      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1

Độ phức tạp về thời gian: O (N2) Không gian phụ trợ: O (1) O(N2)
Auxiliary space: O(1)

Phương pháp 2: Chúng ta có thể tối ưu hóa mã trên bằng khái niệm sau đây về hệ số nhị thức, mục nhập I'th trong một dòng dòng là hệ số nhị thức c (dòng, i) và tất cả các dòng bắt đầu với giá trị 1. Ý tưởng là tính toán C (dòng, i) sử dụng C (dòng, I-1).We can optimize the above code by the following concept of a Binomial Coefficient, the i’th entry in a line number line is Binomial Coefficient C(line, i) and all lines start with value 1. The idea is to calculate C(line, i) using C(line, i-1).

C(line, i) = C(line, i-1) * (line - i + 1) / i

Implementations:

Python3

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
1
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
2
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
3

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
4
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
5
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
6
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
7
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
8

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
9
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
4
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
1
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
6
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
4
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
5
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
6
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
9

C(line, i) = C(line, i-1) * (line - i + 1) / i
0
C(line, i) = C(line, i-1) * (line - i + 1) / i
1
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8import0import1
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
2import3

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
9
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
4
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
1
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
6
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
1
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
9

Độ phức tạp về thời gian: O (N2) Không gian phụ trợ: O (1)

C(line, i) = C(line, i-1) * (line - i + 1) / i
0
C(line, i) = C(line, i-1) * (line - i + 1) / i
1
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8import0
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
13
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
2
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
15
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
16
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
17

Phương pháp 2: Chúng ta có thể tối ưu hóa mã trên bằng khái niệm sau đây về hệ số nhị thức, mục nhập I'th trong một dòng dòng là hệ số nhị thức c (dòng, i) và tất cả các dòng bắt đầu với giá trị 1. Ý tưởng là tính toán C (dòng, i) sử dụng C (dòng, I-1).

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
9
C(line, i) = C(line, i-1) * (line - i + 1) / i
1
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
0

Output:

      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
4
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
5
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
6
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8from0
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
9
O(N2)
Auxiliary Space: O(1)

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
9
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
4
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
1
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
6
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8math 0from0
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
5
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
6
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
7__28____29
This is the most optimized approach to print Pascal’s triangle, this approach is based on powers of 11.

11**0 = 1
11**1 = 11
11**2 = 121
11**3 = 1331

Implementation:

Python3

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
1
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
2
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
3

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
4
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
5
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
6
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
7
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
8

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
9
C(line, i) = C(line, i-1) * (line - i + 1) / i
1
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8import0
11**0 = 1
11**1 = 11
11**2 = 121
11**3 = 1331
1
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
4
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
5
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
47
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
2import3

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
9
C(line, i) = C(line, i-1) * (line - i + 1) / i
1
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8import0
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
54
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
55
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
57
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
58
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
57
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
61
11**0 = 1
11**1 = 11
11**2 = 121
11**3 = 1331
1
11**0 = 1
11**1 = 11
11**2 = 121
11**3 = 1331
1
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
64

Output:

      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
9
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
4
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
1
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
6
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
4
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
5
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
6
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
9
O(N)
Auxiliary Space: O(1)

          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
9
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
4
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
1
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
6
          0C0
       1C0   1C1
    2C0   2C1   2C2
 3C0   3C1   3C2    3C3
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
1
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
7
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
8
      1
     1 1
    1 2 1
   1 3 3 1
  1 4 6 4 1
9


Phương pháp 2: Trong phương pháp này, chúng ta sẽ thảo luận về cách hiệu quả để tìm hàng thứ n của tam giác. Hàng thứ n = nc 0 nc1 nc2… ....

Phương pháp 2: Trong phương pháp này, chúng ta sẽ thảo luận về cách hiệu quả để tìm hàng thứ n của tam giác. Hàng thứ n = nc 0 nc1 nc2… .....
Dưới đây là bước được sử dụng để in hình tam giác Pascal ..
Bước - 1: Lấy đầu vào từ người dùng để nhận số lượng hàng ..
Bước - 2: Khai báo một danh sách trống sẽ lưu trữ các giá trị ..
Bước - 3: Sử dụng cho vòng lặp, sẽ lặp lại đến 0 đến N - 1, nối các danh sách phụ vào danh sách ..

Bước - 4: Bây giờ nối 1 vào danh sách ..

Phương pháp 2: Trong phương pháp này, chúng ta sẽ thảo luận về cách hiệu quả để tìm hàng thứ n của tam giác.Hàng thứ n = nc 0 nc1 nc2… .....
Chương trình Python để tìm khu vực của một tam giác.
# Ba mặt của tam giác là A, B và C:.
a = float (input ('nhập mặt đầu tiên:')).
b = float (đầu vào ('nhập phía thứ hai:')).
c = float (đầu vào ('nhập phía thứ ba:')).
# Tính toán semi-perimet ..
s = (a + b + c) / 2 ..
diện tích = (s*(s-a)*(s-b)*(s-c)) ** 0,5 ..

Làm thế nào để bạn in dòng thứ n của một hình tam giác của Pascal trong Python?

Tìm hàng thứ n trong tam giác của Pascal ở Python..
Phương pháp 1 (sử dụng đệ quy): Tạo chức năng đệ quy nói GetRow (Int Index).Tuyên bố một vector nói cur_row.....
Mã Python ..
Đầu ra.1 2 1 ..
Phương pháp 2: Trong phương pháp này, chúng ta sẽ thảo luận về cách hiệu quả để tìm hàng thứ n của tam giác.Hàng thứ n = nc 0 nc1 nc2… ....
Đầu ra.1 2 1 ..