Hướng dẫn what is meant by factorial in python? - giai thừa trong python nghĩa là gì?

Trong bài viết này, chúng tôi sẽ xem xét cách chúng ta có thể tính toán giai thừa Python bằng cách sử dụng các phương pháp khác nhau.


Chức năng giai thừa Python

Hàm Folter Python factorial(n) được xác định cho toàn bộ số n. Điều này tính toán sản phẩm của tất cả các điều khoản từ n đến 1.

import math

def factorial(x):
    return math.factorial(x)

print(factorial(5))
0 được coi là 1.

Vì vậy, chức năng là:

factorial(n) = n * (n-1) * (n-2) * ... * 1, n >= 1
factorial(n) = 1, n = 0

Do đó, giai thừa (4) = 4 * 3 * 2 * 1 = 24.factorial(4) = 4 * 3 * 2 * 1 = 24.

Hãy để phân tích cách chúng ta có thể viết chức năng toán học này trong Python.

Sử dụng math.factorial ()

Chúng tôi có thể trực tiếp sử dụng chức năng giai thừa của mô -đun

import math

def factorial(x):
    return math.factorial(x)

print(factorial(5))
2 để thực hiện công việc để sử dụng:

import math

def factorial(x):
    return math.factorial(x)

print(factorial(5))

Đầu ra

Chúng tôi cũng sẽ xem xét việc tìm thấy chức năng này bằng các phương pháp khác: Hãy để sử dụng một quy trình lặp ngay bây giờ.

Sử dụng một thủ tục lặp

Chúng ta có thể trực tiếp lặp qua tất cả các số cho 1 đến N và nhân trực tiếp nhân sản phẩm.

def factorial(n):
    if n == 0:
        return 1
    prod = 1
    for i in range(1, n+1):
        prod = prod * i
    return prod

if __name__ == '__main__':
    print(factorial(4))
    print(factorial(7))

Đầu ra

Chúng tôi cũng sẽ xem xét việc tìm thấy chức năng này bằng các phương pháp khác: Hãy để sử dụng một quy trình lặp ngay bây giờ.


Sử dụng một thủ tục lặp

Chúng ta có thể trực tiếp lặp qua tất cả các số cho 1 đến N và nhân trực tiếp nhân sản phẩm.recursion, to compute this function. Basically, we reduce this function into a smaller sub-problem. After we compute the sub-problems, we can combine the results to give the final answer.

Bây giờ, hãy xem xét bằng cách sử dụng một phương pháp đệ quy cho chức năng giai thừa Python.

factorial(n) = n * factorial(n-1), n >= 1
factorial(0) = 1, n = 0

Sử dụng một thủ tục đệ quy

Chúng ta có thể sử dụng đệ quy, để tính toán chức năng này. Về cơ bản, chúng tôi giảm chức năng này thành một vấn đề phụ nhỏ hơn. Sau khi chúng tôi tính toán các vấn đề phụ, chúng tôi có thể kết hợp các kết quả để đưa ra câu trả lời cuối cùng.

def factorial(n):
    if n == 0:
        # Base case n = 0
        return 1
    else:
        # Use the definition of factorial function
        return n * factorial(n-1)

if __name__ == '__main__':
    print(factorial(4))
    print(factorial(7))

Đầu ra

Chúng tôi cũng sẽ xem xét việc tìm thấy chức năng này bằng các phương pháp khác: Hãy để sử dụng một quy trình lặp ngay bây giờ.

Sử dụng một thủ tục lặpcall stack, which continuously stores the state of the program, until the base case is reached. The stack elements are finally popped out one by one after a value is returned by the corresponding block, when the recursion unwinds from

import math

def factorial(x):
    return math.factorial(x)

print(factorial(5))
3.

Chúng ta có thể trực tiếp lặp qua tất cả các số cho 1 đến N và nhân trực tiếp nhân sản phẩm.

Bây giờ, hãy xem xét bằng cách sử dụng một phương pháp đệ quy cho chức năng giai thừa Python.

Hướng dẫn what is meant by factorial in python? - giai thừa trong python nghĩa là gì?
Sử dụng một thủ tục đệ quy

Chúng ta có thể sử dụng đệ quy, để tính toán chức năng này. Về cơ bản, chúng tôi giảm chức năng này thành một vấn đề phụ nhỏ hơn. Sau khi chúng tôi tính toán các vấn đề phụ, chúng tôi có thể kết hợp các kết quả để đưa ra câu trả lời cuối cùng.


Vì cấu trúc vấn đề là một sản phẩm giảm, chúng ta có thể mô hình hóa đệ quy theo cách sau:

Dòng cuối cùng là trường hợp cơ sở. Đây là điểm mà đệ quy dừng lại và chúng ta có thể nhận được sản phẩm cuối cùng, khi đệ quy thư giãn.

Chúng tôi sẽ viết chức năng Python tương ứng cho việc này:tail-recursive procedure.

Điều đó dường như là chính xác. Hãy để phân tích những gì thực sự xảy ra trong các cuộc gọi đệ quy.

Bất cứ khi nào các cuộc gọi đệ quy được sử dụng, có một ngăn xếp cuộc gọi, liên tục lưu trữ trạng thái của chương trình, cho đến khi đạt được trường hợp cơ sở. Các phần tử ngăn xếp cuối cùng được bật ra từng cái một sau khi một giá trị được trả về bởi khối tương ứng, khi đệ quy thư giãn từ

import math

def factorial(x):
    return math.factorial(x)

print(factorial(5))
3.

def fact_helper(accum, n):
    if n == 0:
        return accum
    return fact_helper(accum*n, n-1)

def factorial(n):
    return fact_helper(1, n)

if __name__ == '__main__':
    print(factorial(4))
    print(factorial(7))

Toàn bộ quá trình được giải thích trong hình dưới đây, để tìm

import math

def factorial(x):
    return math.factorial(x)

print(factorial(5))
4. Phần đầu tiên của toàn bộ quá trình là sự tích tụ của ngăn xếp trong đó mỗi cuộc gọi đệ quy đó được xếp chồng lên nhau cho đến khi hàm trả về 1.

Khi chức năng không còn có thể gọi đệ quy, nó bắt đầu tính toán giai thừa như được trình bày dưới đây.

Đầu ra

Chúng tôi cũng sẽ xem xét việc tìm thấy chức năng này bằng các phương pháp khác: Hãy để sử dụng một quy trình lặp ngay bây giờ.


Sử dụng một thủ tục lặp

Chúng ta có thể trực tiếp lặp qua tất cả các số cho 1 đến N và nhân trực tiếp nhân sản phẩm.

Bây giờ, hãy xem xét bằng cách sử dụng một phương pháp đệ quy cho chức năng giai thừa Python.

  • Sử dụng một thủ tục đệ quy

Làm thế nào để bạn viết giai thừa trong Python?

Factorial () trong Python vì nó có loại C nội bộ, nó rất nhanh.môn Toán.Các tham số Factorial (x): X: Số có giai thừa phải được tính toán.Giá trị trả về: Trả về giai thừa của số mong muốn.

Có nghĩa là gì có nghĩa là?

Factorial, trong toán học, sản phẩm của tất cả các số nguyên dương nhỏ hơn hoặc bằng một số nguyên dương nhất định và được biểu thị bằng số nguyên đó và một dấu chấm than.Do đó, Seven Factorial được viết 7 !, có nghĩa là 1 × 2 × 3 × 4 × 5 × 6 × 7. Số 0 fansporial được định nghĩa bằng 1.the product of all positive integers less than or equal to a given positive integer and denoted by that integer and an exclamation point. Thus, factorial seven is written 7!, meaning 1 × 2 × 3 × 4 × 5 × 6 × 7. Factorial zero is defined as equal to 1.