Báo cáo vấn đề. Chúng tôi dự định sử dụng Python để trang bị kiến thức cơ bản về giai thừa và tính toán giai thừa của một số
Giai thừa là gì?
Nói một cách đơn giản, nếu bạn muốn tìm giai thừa của một số nguyên dương, hãy tiếp tục nhân nó với tất cả các số nguyên dương nhỏ hơn số đó. Kết quả cuối cùng mà bạn nhận được là giai thừa của số đó. Vì vậy, nếu bạn muốn tìm giai thừa của 7, hãy nhân 7 với tất cả các số nguyên dương nhỏ hơn 7 và các số đó sẽ là 6,5,4,3,2,1. Nhân tất cả các số này với 7 và kết quả cuối cùng là giai thừa của 7
Nếu bạn đang tìm cách xây dựng kiến thức chuyên môn của mình về chương trình giai thừa Python, hãy xem xét việc được chứng nhận. Khóa học miễn phí về Chương trình thừa số trong Python này cung cấp cho bạn hướng dẫn đầy đủ về chủ đề này và cả chứng chỉ hoàn thành, điều này chắc chắn sẽ làm nổi bật CV của bạn
Công thức của giai thừa
Giai thừa của một số được ký hiệu là n. là tích của tất cả các số nguyên dương nhỏ hơn hoặc bằng n.
n. = n*[n-1]*[n-2]*…. 3*2*1
10 giai thừa
Vậy 10 là bao nhiêu. ? .
10. =10*9*8*7*6*5*4*3*2*1=3628800
Thừa số của 5
Để tìm '5. ' một lần nữa, làm quá trình tương tự. Nhân 5 với tất cả các số nguyên dương nhỏ hơn 5. Những số đó sẽ là 4,3,2,1
5. =5*4*3*2*1=120
Giai thừa của 0
Vì 0 không phải là số nguyên dương nên theo quy ước, giai thừa của 0 được xác định là chính nó.
0. =1
Tính toán đây là một vấn đề thú vị. Hãy để chúng tôi suy nghĩ về lý do tại sao phép nhân đơn giản sẽ là vấn đề đối với máy tính. Câu trả lời cho điều này nằm ở cách giải pháp được thực hiện
1. = 1
2. = 2
5. = 120
10. = 3628800
20. = 2432902008176640000
30. = 9. 332621544394418e+157
Sự gia tăng theo cấp số nhân của các giá trị cho chúng ta thấy rằng giai thừa là một hàm số mũ và thời gian để tính toán nó sẽ mất theo thời gian theo cấp số nhân
Chương trình giai thừa trong Python
Chúng ta sẽ đi qua 3 cách để tính giai thừa
- Sử dụng một chức năng từ mô-đun toán học
- Phương pháp lặp [Sử dụng vòng lặp for]
- phương pháp đệ quy
Chương trình giai thừa trong Python sử dụng hàm
Đây là phương pháp đơn giản nhất có thể được sử dụng để tính giai thừa của một số. Ở đây chúng tôi có một mô-đun có tên toán học chứa một số phép toán có thể dễ dàng thực hiện bằng mô-đun
import math
num=int[input["Enter the number: "]]
print["factorial of ",num," [function]: ",end=""]
print[math.factorial[num]]
KIỂM TRA MÃ
Input – Nhập số. 4
Đầu ra – Giai thừa của 4 [hàm]. 24
Chương trình giai thừa trong python sử dụng vòng lặp for
def iter_factorial[n]:
factorial=1
n = input["Enter a number: "]
factorial = 1
if int[n] >= 1:
for i in range [1,int[n]+1]:
factorial = factorial * i
return factorial
num=int[input["Enter the number: "]]
print["factorial of ",num," [iterative]: ",end=""]
print[iter_factorial[num]]
KIỂM TRA MÃ
Input – Nhập số. 5
Đầu ra – Giai thừa của 5 [lặp đi lặp lại]. 120
Xét chương trình lặp. Mất rất nhiều thời gian để vòng lặp while thực thi. Chương trình trên mất rất nhiều thời gian, giả sử vô hạn. Mục đích của việc tính giai thừa là để có được kết quả kịp thời;
Chương trình giai thừa trong Python sử dụng đệ quy
def recur_factorial[n]:
"""Function to return the factorial
of a number using recursion"""
if n == 1:
return n
else:
return n*recur_factorial[n-1]
num=int[input["Enter the number: "]]
print["factorial of ",num," [recursive]: ",end=""]
print[recur_factorial[num]]
KIỂM TRA MÃ
Input – Đầu vào – Nhập số. 4
Đầu ra – Giai thừa của 5 [đệ quy]. 24
Trên máy tính RAM 16GB, chương trình trên có thể tính các giá trị giai thừa lên tới 2956. Ngoài ra, nó vượt quá bộ nhớ và do đó không thành công. Thời gian thực hiện ít hơn khi so sánh với phương pháp lặp đi lặp lại. Nhưng điều này phải trả giá bằng không gian bị chiếm dụng
Giải pháp cho vấn đề trên là gì?
Bài toán tính giai thừa có cấu trúc lặp đi lặp lại nhiều.
Để tính giai thừa [4], chúng ta tính f[3] một lần, f[2] hai lần và f[1] ba lần; . Do đó, giải pháp sẽ là tính toán giá trị một lần và lưu trữ nó trong một mảng từ đó nó có thể được truy cập vào lần tiếp theo khi được yêu cầu. Do đó, chúng tôi sử dụng lập trình động trong những trường hợp như vậy. Điều kiện để thực hiện quy hoạch động là
- Các vấn đề phụ chồng chéo
- cấu trúc con tối ưu
Xem xét việc sửa đổi đoạn mã trên như sau
def DPfact[N]:
arr={}
if N in arr:
return arr[N]
elif N == 0 or N == 1:
return 1
arr[N] = 1
else:
factorial = N*DPfact[N - 1]
arr[N] = factorial
return factorial
num=int[input["Enter the number: "]]
print["factorial of ",num," [dynamic]: ",end=""]
print[DPfact[num]]
KIỂM TRA MÃ
Input – Nhập số. 6
Đầu ra – giai thừa của 6 [động]. 720
Một giải pháp lập trình động có hiệu quả cao về thời gian và không gian phức tạp
Đếm các số 0 ở cuối trong giai thừa bằng Python
Báo cáo vấn đề. Đếm số lượng số 0 trong giai thừa của một số bằng Python
num=int[input["Enter the number: "]]
# Initialize result
count = 0
# Keep dividing n by
# powers of 5 and
# update Count
temp = 5
while [num / temp>= 1]:
count += int[num / temp]
temp *= 5
# Driver program
print["Number of trailing zeros", count]
Đầu ra
Nhập số. 5
Số các số 0 ở cuối 1
Tìm hiểu cách tìm xem một chuỗi có phải là Palindrome không
Tìm hiểu cách in Chuỗi Fibonacci bằng Python. Ngoài ra, hãy học trí tuệ nhân tạo trực tuyến với sự trợ giúp của Khóa học AI này
Các câu hỏi thường gặp
Giai thừa trong toán học là gì?
Giai thừa của một số, trong toán học, là tích của tất cả các số nguyên dương nhỏ hơn hoặc bằng một số dương cho trước và được ký hiệu bằng số đó cùng dấu chấm than. Do đó, giai thừa bảy được viết là 4. nghĩa là 1 × 2 × 3 × 4, bằng 24. Thừa số 0 được định nghĩa là bằng 1. Giai thừa của số thực và số âm không tồn tại
Công thức của giai thừa là gì?
Để tính giai thừa của một số N, hãy sử dụng công thức này
Giai thừa=1 x 2 x 3 x…x N-1 x N
Có chức năng giai thừa trong Python không?
Có, chúng ta có thể nhập một mô-đun trong Python được gọi là toán học chứa hầu hết các hàm toán học. Để tính giai thừa với một hàm, đây là mã
import math
num=int[input["Enter the number: "]]
print["factorial of ",num," [function]: ",end=""]
print[math.factorial[num]]
Tìm thấy blog này thú vị? . Trong khi bạn đang ở đó, hãy xem khóa học python dành cho người mới bắt đầu để tìm hiểu thêm về Python cơ bản