Chức năng kết hợp trong Python là gì?

Phương thức math.comb[] trả về số cách chọn k kết quả không theo thứ tự từ n khả năng, không lặp lại, còn được gọi là kết hợp

Ghi chú. Các tham số được truyền trong phương thức này phải là số nguyên dương

cú pháp

Giá trị tham số

Tham sốMô tảBắt buộc. Số nguyên dương của các mục để chọn từkBắt buộc. Số nguyên dương của các mục để chọn

Ghi chú. Nếu giá trị của k lớn hơn giá trị của n thì kết quả sẽ trả về 0

Ghi chú. Nếu các tham số là âm, một ValueError xảy ra. Nếu các tham số không phải là số nguyên, TypeError sẽ xảy ra

Các kết hợp Python là sự lựa chọn của tất cả hoặc một phần của tập hợp các đối tượng mà không quan tâm đến thứ tự các đối tượng được chọn. Ví dụ: giả sử chúng ta có một bộ ba chữ cái. A, B và C. Chúng ta có thể hỏi có bao nhiêu cách để chọn hai chữ cái từ tập hợp đó. Mỗi lựa chọn có thể sẽ là một ví dụ về sự kết hợp

kết hợp Python

Để tính toán các kết hợp trong Python, hãy sử dụng itertools. phương thức kết hợp []. itertools. Phương thức kết hợp [] lấy một trình vòng lặp làm đối số và trả về tất cả các kết hợp có thể có của các phần tử trong trình vòng lặp

Các tổ hợp Python cũng giống như Hoán vị ngoại trừ việc Không có tập hợp nào sẽ có cùng phần tử với tập hợp khác. Vì vậy, ví dụ: we có một danh sách gồm ba mục như ['android', 'iOS', 'Symbian' ] và nếu chúng ta chỉ chọn hai phần tử và tạo một tổ hợp, thì .

  1. ['android', 'iOS']
  2. ['android', 'Symbian']
  3. [‘iOS’, ‘Symbian’]

Ví dụ

Hãy lấy ví dụ bằng Ngôn ngữ Python và triển khai nó

# app.py

from itertools import combinations 
  
def combine[arr, s]: 
    return list[combinations[arr, s]] 

array = [21, 18, 19] 
set = 2
print[combine[array, set]]

Trong đoạn mã trên, trước tiên chúng tôi đã nhập đối tượng kết hợp từ mô-đun itertools

Sau đó, chúng tôi đã xác định một hàm gọi là combine[], hàm này sẽ trả về danh sách các kết hợp có thể có. Nó nhận một đối số và tạo ra sự kết hợp của những đối số đó

Trong ví dụ này, chúng tôi đang tạo một danh sách gồm 2 kết hợp

Xem đầu ra

Tính toán kết hợp của Tuple trong Python

Để tính toán các kết hợp của một từ điển trong Python, hãy sử dụng itertools. phương thức kết hợp []. Phương thức kết hợp [] lấy một từ điển làm đối số và trả về tất cả các kết hợp có thể có của các thành phần từ điển

Tổ hợp là sự lựa chọn các phần tử từ một tập hợp sao cho thứ tự không thành vấn đề. Giả sử chúng ta có một danh sách [1, 2, 3], 2 tổ hợp của tập hợp này là [[1, 2], [1, 3], [2, 3]]. Lưu ý rằng thứ tự không quan trọng. Sau khi chúng ta có [1, 2] trong tập hợp, chúng ta cũng không nhận được [2, 1]. Theo mặc định, các kết hợp thường được xác định là không thay thế. Điều này có nghĩa là chúng ta sẽ không bao giờ nhìn thấy 

list[itertools.combinations[sequence, 2]]

# Expected result
# [[1, 2], [1, 3], [2, 3]]
0 – một khi số 1 đã được rút ra, nó sẽ không bị thay thế

Bạn cũng có thể kết hợp với thay thế. 2 tổ hợp [có thay thế] của danh sách [1, 2, 3] là 

list[itertools.combinations[sequence, 2]]

# Expected result
# [[1, 2], [1, 3], [2, 3]]
2. Trong trường hợp này, các số được thay thế sau khi chúng được rút ra

Có một lưu ý quan trọng trước khi chúng ta bắt đầu triển khai thao tác này trong Python. API kết hợp từ itertools coi chỉ mục danh sách là phần tử được vẽ. Điều này có nghĩa là bất kỳ lần lặp nào cũng có thể được coi như một tập hợp [vì tất cả các chỉ số là duy nhất]. Nhưng điều quan trọng là phải nhận ra rằng nếu bạn vượt qua 

list[itertools.combinations[sequence, 2]]

# Expected result
# [[1, 2], [1, 3], [2, 3]]
3, các yếu tố sẽ không bị trùng lặp cho bạn. 2 cách kết hợp của 
list[itertools.combinations[sequence, 2]]

# Expected result
# [[1, 2], [1, 3], [2, 3]]
3 theo API kết hợp itertools là 
list[itertools.combinations[sequence, 2]]

# Expected result
# [[1, 2], [1, 3], [2, 3]]
5

phương pháp tiếp cận

Kết hợp trong itertools

Cực kỳ dễ dàng để tạo các kết hợp trong Python với itertools. Điều sau đây tạo ra tất cả 2 kết hợp của danh sách [1, 2, 3]

import itertools

sequence = [1, 2, 3]
itertools.combinations[sequence, 2]

# Expected result
# 

Hàm 

list[itertools.combinations[sequence, 2]]

# Expected result
# [[1, 2], [1, 3], [2, 3]]
7 trả về một trình vòng lặp. Đây là những gì bạn muốn nếu bạn định lặp qua các kết hợp. Nhưng bạn có thể chuyển đổi nó thành một danh sách nếu bạn muốn tất cả các kết hợp trong bộ nhớ

list[itertools.combinations[sequence, 2]]

# Expected result
# [[1, 2], [1, 3], [2, 3]]

Một thuộc tính hữu ích của hàm 

list[itertools.combinations[sequence, 2]]

# Expected result
# [[1, 2], [1, 3], [2, 3]]
7 là nó lấy bất kỳ hàm lặp nào làm đối số đầu tiên. Điều này có nghĩa là bạn có thể chuyển các chuỗi lười biếng trong

list[itertools.combinations[range[3], 2]]

# Expected result
# [[0, 1], [0, 2], [1, 2]]

Kết hợp với thay thế trong itertools

Nó cũng rất dễ dàng để tạo kết hợp với thay thế

list[itertools.combinations_with_replacement[sequence, 2]]

# Expected result
# [[1, 1], [1, 2], [1, 3], [2, 2], [2, 3], [3, 3]]

Giao diện của 

list[itertools.combinations[sequence, 2]]

# Expected result
# [[1, 2], [1, 3], [2, 3]]
9 giống với 
list[itertools.combinations[sequence, 2]]

# Expected result
# [[1, 2], [1, 3], [2, 3]]
7

Kết hợp không có itertools

Thỉnh thoảng, bạn có thể muốn tạo các kết hợp mà không cần sử dụng itertools. Có thể bạn muốn thay đổi API một chút - chẳng hạn, trả về một danh sách thay vì một trình vòng lặp hoặc bạn có thể muốn thao tác trên một mảng NumPy

Về cơ bản, Python sử dụng triển khai C của thuật toán kết hợp. Tuy nhiên, tài liệu cung cấp thông tin hữu ích  bạn có thể sử dụng, được sao chép lại ở đây để thuận tiện

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

Do đó, Hoán vị được sử dụng cho danh sách [thứ tự quan trọng] và Kết hợp cho nhóm [thứ tự không quan trọng] .

ví dụ kết hợp là gì?

Một vài ví dụ .
Sự kết hợp. Chọn một đội gồm 3 người từ một nhóm 10 người. C [ 10 , 3 ] = 10. / [ 7. ∗ 3. ] = 10 ∗ 9 ∗ 8 / [ 3 ∗ 2 ∗ 1 ] = 120. .
Sự kết hợp. Chọn 3 món tráng miệng từ thực đơn 10 món. C[10,3] = 120. Hoán vị. Liệt kê 3 món tráng miệng yêu thích của bạn, theo thứ tự, từ thực đơn gồm 10 món. P[10,3] = 720

Kết hợp được sử dụng ở đâu?

Các kết hợp được sử dụng khi chỉ cần tìm số nhóm có thể và không cần sắp xếp thứ tự/trình tự . Hoán vị được sử dụng cho những thứ thuộc loại khác. Sự kết hợp được sử dụng cho những thứ cùng loại. Đối với sự sắp xếp khác nhau của mọi thứ nPr=n. /[n-r].

Chủ Đề