Tam giác Pascal Python được viết như thế nào? Dưới đây là cách lập trình Python in ra tam giác Pascal.
Tam giác Pascal là một dạng tam giác các số, trong đó mỗi số bằng tổng của hai số đứng ngay phía trên nó ở hàng trước. Nó được đặt theo tên nhà toán học người Pháp Blaise Pascal, mặc dù nó đã được các nhà toán học ở nhiều nền văn hóa khác nhau nghiên cứu từ rất lâu trước ông.
Cấu trúc của Tam giác Pascal
- Tam giác bắt đầu bằng số 1 ở trên cùng.
- Mỗi hàng bắt đầu và kết thúc bằng số 1.
- Bất kỳ số nào khác trong tam giác đều bằng tổng của hai số ngay phía trên nó ở hàng trước đó.
Một số mô hình khác nhau trong tam giác Pascal là:
- Đường chéo trong tam giác Pascal
- Hệ số nhị thức
- Tổng ngang
- Số nguyên tố trong tam giác
- Mô hình Fibonacci, v.v.
Mỗi đường chéo phải của Tam giác Pascal, khi được coi là một chuỗi biểu diễn các số khác nhau, chẳng hạn như đường chéo phải đầu tiên biểu diễn chuỗi số 1, đường chéo phải thứ hai biểu diễn các số tam giác, đường chéo phải thứ ba biểu diễn các số tứ diện, đường chéo phải thứ tư biểu diễn các số Penelope, v.v.
Tam giác Pascal cũng là một câu hỏi thường xuyên được các công ty lớn sử dụng khi thi tuyển lập trình viên. Trong bài viết này, Quản Trị Mạng sẽ cùng các bạn tìm hiểu cách viết chương trình in ra Tam giác Pascal bằng Python.
Đề bài: Viết chương trình in ra Tam giác Pascal với số hàng cho trước.
Ví dụ: Số hàng bằng 5 thì Tam giác Pascal sẽ được in ra như sau:
Input: n = 5
Output:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1Cách 1: Sử dụng công thức nCr tức là n!/(n-r)!r!
Sau khi sử dụng công thức nCr, biểu diễn bằng hình ảnh trở thành:
0C0
1C0 1C1
2C0 2C1 2C2
3C0 3C1 3C2 3C3Thuật toán:
- Lấy một số hàng sẽ được in, giả sử nó là n.
- Thực hiện phép lặp ngoài i từ 0 tới n lần để in các hàng.
- Thực hiện phép lặp trong cho j từ 0 đến (N-1).
- In một khoảng trống "".
- Đóng vòng lặp bên trong (vòng lặp j) //cần thiết cho khoảng cách bên trái.
- Thực hiện phép lặp bên trong cho j từ 0 đến i.
- In nCr của i và j.
- Đóng vòng lặp bên trong.
- In ký tự xuống xòng (\n) sau mỗi lần lặp bên trong.
Dưới đây là code mẫu:
# Print Pascal's Triangle in Python
from math import factorial
# input n
n = 5
for i in range(n):
for j in range(n-i+1):
# for left spacing
print(end=" ")
for j in range(i+1):
# nCr = n!/((n-r)!*r!)
print(factorial(i)//(factorial(j)*factorial(i-j)), end=" ")
# for new line
print()Cách 2:
Chúng ta có thể tối ưu hóa đoạn code trên bằng khái niệm Hệ số Nhị thức sau, mục thứ i trong một dòng là Hệ số Nhị thức C(line, i) và tất cả các dòng bắt đầu bằng giá trị 1. Ở đây, chúng ta phải thực hiện ý tưởng là tính toán C(line, i) bằng cách sử dụng C(line, i-1).
Code mẫu như sau:
# Print Pascal's Triangle in Python
# input n
n = 5
for i in range(1, n+1):
for j in range(0, n-i+1):
print(' ', end='')
# first element is always 1
C = 1
for j in range(1, i+1):
# first value in a line is always 1
print(' ', C, sep='', end='')
# using Binomial Coefficient
C = C * (i - j) // j
print()Cách 3:
Đây là cách tối ưu nhất để in tam giác Pascal. Cách này dựa trên cơ sở lũy thừa của 11.
11**0 = 1
11**1 = 11
11**2 = 121
11**3 = 1331Code mẫu như sau:
# Print Pascal's Triangle in Python
# input n
n = 5
# iterarte upto n
for i in range(n):
# adjust space
print(' '*(n-i), end='')
# compute power of 11
print(' '.join(map(str, str(11**i))))Tuy nhiên, nhược điểm là phương pháp này chỉ áp dụng được ho đến n=5 mà thôi.
Quản Trị Mạng hy vọng rằng bài viết này sẽ có ích đối với bạn.
Học IT










Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy