Hoán vị là một sự sắp xếp của các đối tượng theo một thứ tự cụ thể. Thứ tự sắp xếp đối tượng là rất quan trọng. Số lượng hoán vị trên một bộ các phần tử & nbsp; n & nbsp; được đưa ra bởi & nbsp; N!. & nbsp; ví dụ, có & nbsp; 2! = 2*1 = 2 & nbsp; hoán vị của & nbsp; {1, 2}, cụ thể là & nbsp; {1, 2} & nbsp; và & nbsp; = 3*2*1 = 6 & nbsp; hoán vị của & nbsp; {1, 2, 3}, cụ thể là & nbsp; {1, 2, 3}, & nbsp; {1, 3, 2}, & nbsp; & nbsp; {2, 3, 1}, & nbsp; {3, 1, 2} và & nbsp; {3, 2, 1}. & nbsp; Show Phương pháp 1 (quay lại) & nbsp; chúng ta có thể sử dụng giải pháp đệ quy dựa trên backtracking được thảo luận ở đây. Python3
____10 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]1 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]2 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]3 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]4 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]4 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]6 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]7 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]8 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]9 (1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 1, 2) (3, 2, 1)0 Các [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]8 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]9 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)1 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]0 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)3 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]4 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)5 ____10 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)7 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)8 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)9 (1, 2) (1, 3) (2, 3)0 (1, 2) (1, 3) (2, 3)1 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]2 (1, 2) (1, 3) (2, 3)3 (1, 2) (1, 3) (2, 3)4 (1, 2) (1, 3) (2, 3)5 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]4 (1, 2) (1, 3) (2, 3)7 (1, 2) (1, 3) (2, 3)4___ (1, 2) (1, 3) (2, 3)4 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)7 (1, 2) (1, 3) (2, 3)9 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)9 (2, 1) (2, 3) (1, 3)1 (2, 1) (2, 3) (1, 3)2 (2, 1) (2, 3) (1, 3)3 (1, 2) (1, 3) (2, 3)2 (2, 1) (2, 3) (1, 3)5 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]0 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]9 (2, 1) (2, 3) (1, 3)8 (2, 1) (2, 3) (1, 3)9 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]4 (1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3)1 (1, 2) (1, 3) (2, 3)1 (1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3)3 (1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3)4 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)7 (1, 2) (1, 3) (2, 3)9 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)9 (1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3)8 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]0 def 0 def 1Output: ['1', '2', '3'] ['1', '3', '2'] ['2', '1', '3'] ['2', '3', '1'] ['3', '1', '2'] ['3', '2', '1'] Phương pháp 3 (hàm trực tiếp) & nbsp; chúng ta có thể làm điều đó bằng cách sử dụng chức năng hoán vị tích hợp trong thư viện ITERTOOLS. Đó là kỹ thuật ngắn nhất để tìm thấy hoán vị. & NBSP; Python3
(1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)3 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]4 (1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3)1 def 9(1, 2) (1, 3) (2, 3)0 (1, 2) (1, 3) (2, 3)1 (1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 1, 2) (3, 2, 1)7 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) permutation(lst): 4permutation(lst): 5
Output: [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] Bài viết này được đóng góp bởi Arpit Agarwal. Nếu bạn thích GeekSforGeeks và muốn đóng góp, bạn cũng có thể viết một bài viết và gửi bài viết của bạn. Xem bài viết của bạn xuất hiện trên trang chính của GeekSforGeek và giúp các chuyên viên máy tính khác. Xin vui lòng viết nhận xét nếu bạn tìm thấy bất cứ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề được thảo luận ở trên & NBSP;Arpit Agarwal. If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks. Python cung cấp các phương pháp trực tiếp để tìm hoán vị và kết hợp một chuỗi. Các phương pháp này có mặt trong gói itertools. PermutationĐầu tiên nhập gói ITERTOOLS để thực hiện phương thức hoán vị trong Python. Phương thức này lấy một danh sách làm đầu vào và trả về một danh sách đối tượng các bộ dữ liệu có chứa tất cả các hoán vị trong một mẫu danh sách. & Nbsp; & nbsp; Python3
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]01 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]02 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]4 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]04 (1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 1, 2) (3, 2, 1)7 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]07 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]09 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]10 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)7 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)8 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)9 (1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3)1 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]15 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]0 def 0 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]18 Output: (1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 1, 2) (3, 2, 1) Nó tạo ra n! hoán vị nếu độ dài của chuỗi đầu vào là n. & nbsp; nếu muốn & nbsp; để có được hoán vị có độ dài l sau đó thực hiện nó theo cách này. & nbsp; & nbsp; Python3
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]01 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]02 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]4 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]04 (1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 1, 2) (3, 2, 1)7 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]07 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]09 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]10 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)7 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)8 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)9 (1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3)1 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]15 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]0 def 0 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]18 Output: (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) Nó tạo ra n! hoán vị nếu độ dài của chuỗi đầu vào là n. & nbsp; nếu muốn & nbsp; để có được hoán vị có độ dài l sau đó thực hiện nó theo cách này. & nbsp; & nbsp; CombinationIs Python3Nó tạo ra ncr * r! hoán vị Nếu độ dài của chuỗi đầu vào là n và tham số đầu vào là r. Phương thức này lấy một danh sách và đầu vào r làm đầu vào và trả về một danh sách đối tượng các bộ dữ liệu chứa tất cả các kết hợp có thể có của độ dài r trong một biểu mẫu danh sách. & Nbsp; & nbsp;
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]45 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]46 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]4 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]48 (1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 1, 2) (3, 2, 1)7 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]07 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]09 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]31 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]07 Output: (1, 2) (1, 3) (2, 3) (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)7 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)8 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)9 (1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3)1 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]61 Python3[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]0 def 0 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]64 1. Kết hợp được phát ra theo thứ tự sắp xếp từ vựng của đầu vào. Vì vậy, nếu danh sách đầu vào được sắp xếp, các bộ dữ liệu kết hợp sẽ được tạo theo thứ tự được sắp xếp. & Nbsp; & nbsp;
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]68 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]46 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]4 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]48 (1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 1, 2) (3, 2, 1)7 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]07 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]09 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]31 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]07 Output: (1, 2) (1, 3) (2, 3) (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)7 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)8 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)9 (1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3)1 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]61 Python3[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]0 def 0 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]64 1. Kết hợp được phát ra theo thứ tự sắp xếp từ vựng của đầu vào. Vì vậy, nếu danh sách đầu vào được sắp xếp, các bộ dữ liệu kết hợp sẽ được tạo theo thứ tự được sắp xếp. & Nbsp; & nbsp;
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]68 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]46 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]4 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]48 (1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 1, 2) (3, 2, 1)7 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]07 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2) [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]09 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]31 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]07 Output: (2, 1) (2, 3) (1, 3) (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)7 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)8 (1, 2) (1, 3) (2, 1) (2, 3) (3, 1) (3, 2)9 (1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3)1 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]61 Python3[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]0 def 0 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]64 1. Kết hợp được phát ra theo thứ tự sắp xếp từ vựng của đầu vào. Vì vậy, nếu danh sách đầu vào được sắp xếp, các bộ dữ liệu kết hợp sẽ được tạo theo thứ tự được sắp xếp. & Nbsp; & nbsp;
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]68 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]0 def 0 [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]18 Output: (1, 1) (1, 2) (1, 3) (2, 2) (2, 3) (3, 3) Làm thế nào để bạn hình thành các hoán vị trong Python?Có hai cách tạo ra các hoán vị trong Python: sử dụng đệ quy.Sử dụng itertools.Using recursion. Using itertools.
Làm thế nào để một chức năng hoán vị hoạt động trong Python?Hán có nghĩa là các đơn đặt hàng khác nhau mà các yếu tố có thể được sắp xếp.Các yếu tố có thể là của một chuỗi hoặc một danh sách hoặc bất kỳ loại dữ liệu nào khác.Đó là sự sắp xếp lại các mặt hàng theo những cách khác nhau.Python có các phương pháp khác nhau bên trong một gói có tên Itertools, có thể giúp chúng ta đạt được các hoán vị Python.different orders by which elements can be arranged. The elements might be of a string, or a list, or any other data type. It is the rearrangement of items in different ways. Python has different methods inside a package called itertools, which can help us achieve python permutations.
Làm thế nào để bạn tạo ra tất cả các hoán vị của một chuỗi trong Python?Để tìm tất cả các hoán vị có thể của một chuỗi đã cho, bạn có thể sử dụng mô -đun ITERTOOLS có một phương thức hữu ích gọi là hoán vị (Itable [, R]).Phương pháp này trả về hoán vị chiều dài r liên tiếp của các phần tử trong các bộ dữ liệu có thể lặp lại.use the itertools module which has a useful method called permutations(iterable[, r]). This method return successive r length permutations of elements in the iterable as tuples.
Làm thế nào để bạn viết một hoán vị của một số?Công thức cho hoán vị là gì?Công thức cho hoán vị cho các đối tượng N được thực hiện tại một thời điểm được đưa ra bởi: p (n, r) = n!/(N-r)!P(n,r) = n!/(n-r)! |