Số hoán vị và tổ hợp trong python

Trong phần này, chúng ta sẽ tìm hiểu cách tìm hoán vị và tổ hợp của một dãy số đã cho bằng ngôn ngữ lập trình python

Một trong những lợi thế chính của python so với các ngôn ngữ lập trình khác là nó đi kèm với một bộ thư viện khổng lồ.

Chúng tôi sẽ sử dụng gói sẵn có của python để tìm hoán vị và kết hợp của một chuỗi nhất định

Thuật toán tìm Hoán vị và tổ hợp

  • Bước 1. Nhập gói yêu cầu. Bước đầu tiên là nhập gói cần thiết, vì chúng tôi sẽ sử dụng gói itertools, vì vậy chúng tôi chỉ cần nhập gói đó bằng cách sử dụng

>>> import itertools
>>>
  • Bước 2. Nhận tất cả hoán vị và kết hợp của một chuỗi. Bước thứ hai là nhập danh sách các chuỗi/mục làm đầu vào sẽ trả về tất cả các hoán vị và kết hợp ở dạng danh sách các bộ

  • Chúng ta cũng có thể đặt độ dài của hoán vị và tổ hợp

  • Bước 3. In kết quả Bước cuối cùng là in tất cả các hoán vị và tổ hợp của tập dãy. Chúng ta có thể sử dụng chức năng lặp để in kết quả

    Nếu bạn chỉ cần tính toán công thức, toán học. giai thừa có thể được sử dụng, nhưng không nhanh đối với các kết hợp lớn, nhưng hãy xem math.comb bên dưới để biết phép tính được tối ưu hóa có sẵn trong Python 3. 8+

    import math
    
    def nCr(n,r):
        f = math.factorial
        return f(n) // f(r) // f(n-r)
    
    if __name__ == '__main__':
        print nCr(4,2)
    

    đầu ra

    6
    

    Kể từ Python 3. 8, math.comb có thể được sử dụng và nhanh hơn nhiều

    >>> import math
    >>> math.comb(4,2)
    6
    

    Sự khác biệt giữa kết hợp và hoán vị là gì?

    Cả kết hợp và hoán vị đều là tập hợp các đối tượng được chọn từ một tập hợp các phần tử khác

    Sự khác biệt là thứ tự. với tổ hợp thì chúng ta không quan tâm đến thứ tự chọn hay thứ tự nói chung, với hoán vị thì chúng ta rất quan tâm

    kết hợp

    Xổ số là một ví dụ tuyệt vời cho sự kết hợp. bạn có một bộ số nhất định (ví dụ từ 1 đến 69) và bạn rút được 5 số trúng thưởng. Để giành chiến thắng, không cần biết tỷ số hòa là 1–2–3–4–5 hay 5–4–3–2–1. nếu bạn có những con số này, bạn đã thắng. Hãy xem một ví dụ sử dụng thư viện itertools của Python

    Số hoán vị và tổ hợp trong python

    Cách tính toán Hoán vị của tuple trong Python

    Để tính toán hoán vị của bộ dữ liệu, chúng ta có thể sử dụng itertools. hàm hoán vị (). Trước tiên, chúng ta phải nhập mô-đun itertools và sử dụng phương thức permutations(). Chúng ta phải truyền bộ dữ liệu làm tham số để tính toán các hoán vị

    Hãy xác định một bộ và sau đó tính các hoán vị của bộ đó. Xem đoạn mã dưới đây

    # app.py
    
    from itertools import permutations
    
    tupleA = (21, 19)
    perm = permutations(tupleA)
    
    for item in list(perm):
        print(item)
    

    Chúng tôi đã nhập trực tiếp đối tượng hoán vị từ mô-đun itertools trong đoạn mã trên

    Sau đó, chúng tôi đã xác định Tuple và sau đó tính toán Tuple và trả về kết quả và chúng tôi đã lặp lại kết quả đó để in các hoán vị khác nhau. Xem đầu ra bên dưới

    Số hoán vị và tổ hợp trong python

    Cách tìm hoán vị của từ điển trong Python

    Để tính toán các hoán vị của Từ điển, chúng ta có thể sử dụng itertools. hoán vị() phương pháp. Chúng ta phải vượt qua Từ điển. các giá trị () thành các tham số của phương thức hoán vị và đó là nó. Chúng tôi sẽ nhận được kết quả

    Hãy tính các hoán vị của từ điển. Nhưng, trước tiên, hãy viết đoạn mã sau bên trong ứng dụng. tệp py

    # app.py
    
    from itertools import permutations
    
    dictA = {
        1: 19,
        2: 21,
        3: 18
    }
    perm = permutations(dictA.values())
    
    for item in list(perm):
        print(item)

    Trong đoạn mã trên, chúng tôi đã tính toán hoán vị của các giá trị Từ điển. Xem đầu ra bên dưới

    Số hoán vị và tổ hợp trong python

    Phần kết luận

    Gói Python itertools rất hữu ích khi chúng ta phải tính toán các hoán vị và tổ hợp. Chúng tôi đã tính toán các hoán vị cho Danh sách, Tuple và Từ điển.

    Đó là nó cho hướng dẫn này

    Bài viết đề xuất

    Python có nghĩa là

    Python trung bình

    Chế độ Python

    Facebook

    Twitter

    Pinterest

    WhatsApp

    Bài viết trước Ngăn xếp trong C++. Hướng dẫn đầy đủ

    Bài viết tiếp theo Pandas read_excel. Cách đọc tệp Excel bằng Python

    Số hoán vị và tổ hợp trong python

    kranal

    https. //appdividend. com/

    Krunal Lathiya là Kỹ sư phần mềm với hơn tám năm kinh nghiệm. Anh ấy đã phát triển một nền tảng vững chắc về các nguyên tắc khoa học máy tính và niềm đam mê giải quyết vấn đề. Ngoài ra, Krunal có kiến ​​thức tuyệt vời về Khoa học dữ liệu và Học máy, đồng thời là chuyên gia về Ngôn ngữ Python. Krunal có kinh nghiệm với nhiều ngôn ngữ lập trình và công nghệ khác nhau, bao gồm PHP, R, Golang và JavaScript. Anh ấy cảm thấy thoải mái khi làm việc trong lĩnh vực phát triển front-end và back-end