Hướng dẫn math factorial python source code - mã nguồn python giai thừa toán học

Việc cài đặt Python đi kèm với thư viện chức năng riêng của nó. Hàm nhân tố math.factorial() được bao gồm trong mô -đun toán học của nó. Các mô -đun toán học là một phần của gói mã cài đặt Python. Các mô -đun toán học hoặc các chức năng như giai thừa, gốc, sin và hàm mũ có thể được sử dụng trong các chương trình Python. Để sử dụng chúng, lệnh nhập phải được sử dụng trước cuộc gọi hàm toán học, như được hiển thị trong mã sau.

import math
print(math.factorial(4))

# the output is: 24 because 4 factorial is 24

Lệnh

import math


def fcto(n):
    '''Factorial called fcto is defined'''
    if n==0 or n==1 :
        return 1
    else :
        return n * fcto(n-1)
        #  the rest of factorial expression, n(n-1)(n-2)...3(2)(1)


print(fcto(5))
# 120
0 kết hợp các chức năng toán học từ thư viện Python trong quá trình thực thi mã.

  • Đơn vị trong toán học
  • Giải pháp thay thế chức năng của toán học toán học
    • Giải pháp thay thế giai thừa 1: Cách tiếp cận đệ quy
    • Giải pháp thay thế giai thừa 2: Phương pháp lặp lại
  • Độ phức tạp thời gian chạy của Toán học
    • Ví dụ 1: Thời gian phương pháp đệ quy cho 30!
    • Ví dụ 2: Thời gian tiếp cận lặp cho 30!
    • Ví dụ 3: Thời gian Chức năng toán học cho 30!

Đơn vị trong toán học

Giải pháp thay thế chức năng của toán học toán học

Giải pháp thay thế giai thừa 1: Cách tiếp cận đệ quy

Giải pháp thay thế giai thừa 2: Phương pháp lặp lại

Độ phức tạp thời gian chạy của Toán học

Ví dụ 1: Thời gian phương pháp đệ quy cho 30!

Ví dụ 2: Thời gian tiếp cận lặp cho 30!

Ví dụ 3: Thời gian Chức năng toán học cho 30!

Hướng dẫn math factorial python source code - mã nguồn python giai thừa toán học

Trong toán học, thuật ngữ Factorial được đưa ra cho một biểu thức cụ thể dẫn đến sản phẩm của các số tự nhiên theo thứ tự tuần tự hoặc tăng dần hoặc giảm dần. Trình tự bắt đầu hoặc kết thúc bằng 1. Ví dụ: 1*2*3*4 = 24, được cho là của 4 4 giai thừa và được ký hiệu là 4! (Với dấu chấm than.n! here refers to the range of numbers used in a pair. For example, if the 2-digit numbers are picked from 1 to 40, then the result is:

Hướng dẫn math factorial python source code - mã nguồn python giai thừa toán học

Do đó, 1*2*3*4*5 là 5! cũng có thể được viết là 5*4*3*2*1. Nói chung, đối với số nguyên tùy ý (lớn hơn) n, bạn có thể viết n! = n * (n-1) * (n-2) * * * 3 * 2 * 1.

Số lượng nhân tố có nhiều ứng dụng, đặc biệt là trong lĩnh vực xác suất và toán học kết hợp. Kết hợp là về việc đếm, hoặc cách sắp xếp mọi thứ, hoặc hoán vị. Đối với một ví dụ rất đơn giản, có bao nhiêu cách có thể cho một người đặt 4 cuốn sách lên kệ?

Giải pháp thay thế chức năng của toán học toán học

Giải pháp thay thế giai thừa 1: Cách tiếp cận đệ quy

Giải pháp thay thế giai thừa 1: Cách tiếp cận đệ quy

import math


def fcto(n):
    '''Factorial called fcto is defined'''
    if n==0 or n==1 :
        return 1
    else :
        return n * fcto(n-1)
        #  the rest of factorial expression, n(n-1)(n-2)...3(2)(1)


print(fcto(5))
# 120

Giải pháp thay thế giai thừa 2: Phương pháp lặp lại

Giải pháp thay thế giai thừa 2: Phương pháp lặp lại

import math


def factorial(n):
    fact = 1
    for num in range(2, n+1):
        fact *= num
        return fact


print(factorial(4))
# 24

Hàm giai thừa được gọi với 4. Trong phạm vi của hàm, biến

import math


def factorial(n):
    fact = 1
    for num in range(2, n+1):
        fact *= num
        return fact


print(factorial(4))
# 24
2. Và sau đó, phép lặp vòng lặp bắt đầu với giá trị 2 cho num. & nbsp; vì trong lần lặp đầu tiên
import math


def factorial(n):
    fact = 1
    for num in range(2, n+1):
        fact *= num
        return fact


print(factorial(4))
# 24
3 là 2, sau đó 2 × 1 được trả về. Ở lần lặp tiếp theo
import math


def factorial(n):
    fact = 1
    for num in range(2, n+1):
        fact *= num
        return fact


print(factorial(4))
# 24
4, do đó biến thực tế được gán 2 × 3, do đó 6 được trả về. Cho đến nay, 2 và 6 đã được trả lại. Điều này tạo thành hai số giai thừa đầu tiên, hoặc 1 × 2 = 2 hoặc 2! và 1x2x3 = 6 hoặc 3 !. Trong lần lặp tiếp theo
import math


def factorial(n):
    fact = 1
    for num in range(2, n+1):
        fact *= num
        return fact


print(factorial(4))
# 24
3 là 4, vì vậy thực tế được gán 6 × 4 = 24, đó là 4 !. Đây là lần lặp cuối cùng vì giới hạn trên là N + 1 hoặc 4 + 1 = 5.

5 không được sử dụng, vì giới hạn trên của lệnh phạm vi không được thực thi.

Độ phức tạp thời gian chạy của Toán học

Số lượng nhân tố, n !, Tăng giá trị rất nhanh khi n lớn hơn, sản phẩm phát triển nhanh hơn nhiều so với các hàm số mũ phát triển nhanh, 10^x làm ví dụ.

Một so sánh tăng trưởng của các chức năng phổ biến trong toán học thường được biểu thị bằng N! >> 10^x >> x^3 >> x^2 >> lnx, trong đó >> có nghĩa là nhiều hơn nhiều. Trong khoa học máy tính, họ dạy ký hiệu lớn:

Hướng dẫn math factorial python source code - mã nguồn python giai thừa toán học

Vấn đề là khi bạn thiết kế các thuật toán bằng cách sử dụng các tính toán với N !, Đó là cách thực hành tốt để thực hiện phân tích thời gian chạy cẩn thận.

Vì lý do này, cách bạn viết các chương trình sử dụng các chức năng giai thừa có thể tạo ra sự khác biệt đáng kể trong thời gian chạy. Khi tính toán số lượng lớn, có thể sử dụng tuyến tính O (n) hoặc O (log (n)) tuyến tính nếu có thể. Nó thậm chí có thể được chấp nhận để sử dụng các ước tính. Ví dụ, vì

Hướng dẫn math factorial python source code - mã nguồn python giai thừa toán học

bằng nhau

Hướng dẫn math factorial python source code - mã nguồn python giai thừa toán học

& nbsp; Đó là một trường hợp trong đó O (n log (n)) có thể được áp dụng, nhưng đó là một ước tính. Điều này được gọi là xấp xỉ Stirling, mang lại giá trị gần đúng cho & nbsp; factorial & nbsp; function. Tuy nhiên, nếu các số liên quan đến thuật toán là đủ lớn, đây có thể là một giải pháp chấp nhận được cho thời gian chạy hợp lý.

Python là một ngôn ngữ loại phiên dịch - một trong đó không cần thiết phải biên dịch. Điều này làm cho Python di động trên các hệ điều hành và dễ sử dụng. Nhưng giá bạn phải trả cho các tiện ích này, ví dụ, là các ngôn ngữ này chậm hơn về mặt tính toán. Ví dụ, chúng chậm hơn Java hoặc C ++. Đây là một lý do khác tại sao bạn phải cẩn thận với việc thực hiện chức năng

import math


def fcto(n):
    '''Factorial called fcto is defined'''
    if n==0 or n==1 :
        return 1
    else :
        return n * fcto(n-1)
        #  the rest of factorial expression, n(n-1)(n-2)...3(2)(1)


print(fcto(5))
# 120
2. Dưới đây là 3 ví dụ minh họa sự khác biệt thời gian chạy. Cả 3 đã được thảo luận ở trên. Lặp, đệ quy và ____ 12 & nbsp; Runtimes cho các đoạn trích được so sánh ở đây.

Ví dụ 1: Thời gian phương pháp đệ quy cho 30!

import math
import time


start = time.time()
def fcto(n):
    if n==0 or n==1:
        return 1
    else:
        return n*fcto(n-1)     

print(fcto(30))                
stop = time.time()

print("\ntime elapsed for Recursive: " + str(stop-start), "\n")

Đầu ra:

265252859812191058636308480000000

time elapsed for Recursive: 0.011820793151855469 

Ví dụ 2: Thời gian tiếp cận lặp cho 30!

import math
import time


start = time.time()

def factorial(n):
    fact = 1
    for num in range(2, n + 1):
        fact *= num
    return fact


print(factorial(30))
stop = time.time()

print("\ntime elapsed for iterative: " + str(stop-start), "\n")

Đầu ra:

265252859812191058636308480000000

time elapsed for iterative: 0.0

Ví dụ 2: Thời gian tiếp cận lặp cho 30!

import math
import time


start = time.time()
print(math.factorial(30))
stop = time.time()
print("\ntime elapsed for math.factorial: " + str(stop-start), "\n")

Output: 265252859812191058636308480000000
time elapsed for math.factorial: 3.1948089599609375e-05

Đầu ra:

265252859812191058636308480000000

time elapsed for Recursive: 0.011820793151855469 

Ví dụ 2: Thời gian tiếp cận lặp cho 30!

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

Sử dụng chức năng tích hợp..
# Chương trình Python để tìm ..
# Đơn vị số của số đã cho ..
Nhập toán ..
thực tế (n):.
return(math.factorial(n)).
num = int (input ("nhập số:")).
f = thực tế (num).
In ("Factorial của", num "là", f).

Làm thế nào để bạn tìm thấy giai thừa sử dụng một mô -đun toán học trong Python?

Hàm Factorial () trả về giai thừa của số mong muốn.Cú pháp: Math.Factorial (x) Tham số: X: Đây là một biểu thức số.Trả lại: Factorial của số mong muốn.math. factorial(x) Parameter: x: This is a numeric expression. Returns: factorial of desired number.

Có những người có trong Python không?

Để tìm giai thừa Python của một số, số được nhân với tất cả các số nguyên nằm giữa 1 và số.Về mặt toán học, nó được đại diện bởi!Vì vậy, ví dụ, 5!sẽ là 5 x 4 x 3 x 2 x 1, đó là 120. Không xác định số gốc cho các số âm.. Mathematically, it is represented by “!”. Thus, for example, 5! will be 5 x 4 x 3 x 2 x 1, that is 120. Factorial for negative numbers is not defined.