Pertama, impor itertools
import itertoolsPermutasi (masalah urutan)
print(list(itertools.permutations([1,2,3,4], 2))) [(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)] _Kombinasi (urutan TIDAK masalah)
print(list(itertools.combinations('123', 2))) [('1', '2'), ('1', '3'), ('2', '3')]Produk Cartesian (dengan beberapa iterables)
print(list(itertools.product([1,2,3], [4,5,6]))) [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]Produk Cartesian (dengan satu iterable dan dirinya sendiri)
print(list(itertools.product([1,2], repeat=3))) [(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2), (2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2)] _Menyusun semua anggota suatu himpunan ke dalam suatu urutan atau urutan dan jika himpunan itu sudah terurut, menyusun kembali (reordering) elemen-elemennya disebut permutasi.
Hasilkan semua permutasi menggunakan for loop
Kami akan menghasilkan permutasi menggunakan for loop −
Contoh
Keluaran
['4', '5', '6'] ['4', '6', '5'] ['5', '4', '6'] ['5', '6', '4'] ['6', '4', '5'] ['6', '5', '4']Hasilkan semua permutasi menggunakan fungsi permutations()
Kami akan menghasilkan permutasi menggunakan fungsi permutations() −
Contoh
Keluaran
Permutations [(1, 2), (2, 1)] _Hasilkan semua permutasi menggunakan permutations() dalam fungsi extend()
Untuk menghasilkan semua permutasi menggunakan fungsi extend() −
Contoh
Keluaran
Permutations [(2,), (3,), (4,), (2, 3), (2, 4), (3, 2), (3, 4), (4, 2), (4, 3), (2, 3, 4), (2, 4, 3), (3, 2, 4), (3, 4, 2), (4, 2, 3), (4, 3, 2)]Misalkan kita memiliki kumpulan bilangan bulat yang berbeda; . Jadi jika arraynya seperti [2,1,3], maka hasilnya adalah [[1,2,3], [1,3,2], [2,1,3], [2,3,1
Untuk mengatasi ini, kami akan mengikuti langkah-langkah ini −
- Kami akan menggunakan pendekatan rekursif, ini akan membuat daftar, mulai, curr dan res
- jika mulai > panjang daftar – 1, lalu tambahkan curr ke dalam res, dan kembali
- untuk i dalam rentang mulai dari panjang daftar yang diberikan – 1
- tukar elemen daftar yang ada di awal indeks dan (mulai + (i – mulai))
- permutasi(daftar, mulai + 1, curr + [daftar[mulai]], res)
- tukar elemen daftar yang ada di awal indeks dan (mulai + (i – mulai))
- awalnya memanggil permutasi(arr, 0, [], res)
Contoh (Python)
Mari kita lihat implementasi berikut untuk mendapatkan pemahaman yang lebih baik −
Demo Langsung
Memasukkan
[1,2,3,4]_Keluaran
[[1,2,3,4],[1,2,4,3],[1,3,2,4],[1,3,4,2],[1,4,3,2],[1,4,2,3],[2,1,3,4],[2,1,4,3],[2,3,1,4],[2,3,4,1],[2,4,3,1],[2,4,1,3],[3,2,1,4],[3,2,4,1],[3,1,2,4],[3,1,4,2],[3,4,1,2],[3,4,2,1],[4,2,3,1],[4,2,1,3],[4,3,2,1],[4,3,1,2],[4,1,3,2],[4,1,2,3]]Dalam tutorial ini, kita akan belajar cara mendapatkan permutasi dan kombinasi data tertentu menggunakan Python. Kami akan menggunakan paket bawaan Python untuk menemukan permutasi dan kombinasi dari angka yang diberikan
Permutasi dan kombinasi merupakan bagian penting dalam matematika. Python menyediakan pustaka itertools yang memiliki fungsi bawaan untuk menghitung permutasi dan kombinasi
Mengimpor perpustakaan yang Diperlukan
Untuk menghitung permutasi dan kombinasi, kita perlu mengimpor pustaka itertools. Kita dapat mengimpornya menggunakan perintah di bawah ini
Pernyataan di atas akan mengimpor pustaka itertools dan membentuk jalur menuju fungsinya
Sekarang, kita perlu membuat daftar sequence sebagai input. Daftar input ini akan mengembalikan tuple yang terdiri dari permutasi dan kombinasi. Kita juga bisa mengatur panjang permutasi dan kombinasinya
Permutasi adalah susunan dari suatu himpunan yang urutannya penting. Modul itertools Python menyediakan metode permutasi() bawaan untuk menemukan permutasi. Mari kita pahami contoh berikut
Contoh -
Keluaran
('1', '2', '3') ('1', '3', '2') ('2', '1', '3') ('2', '3', '1') ('3', '1', '2') ('3', '2', '1')
Pada kode di atas, kita telah mengimpor modul itertools. Kami memanggil metode permutation() yang menggunakan string sebagai argumen dan menyediakan objek itertools. Perlu menggunakan for loop untuk mendapatkan setiap permutasi
Mari kita ambil dua set permutasi
Contoh - 2
Keluaran
('A', 'B') ('A', 'C') ('B', 'C')
Contoh - 3
Keluaran
(1, 2, 3, 4) (1, 2, 4, 3) (1, 3, 2, 4) (1, 3, 4, 2) (1, 4, 2, 3) (1, 4, 3, 2) (2, 1, 3, 4) (2, 1, 4, 3) (2, 3, 1, 4) (2, 3, 4, 1) (2, 4, 1, 3) (2, 4, 3, 1) (3, 1, 2, 4) (3, 1, 4, 2) (3, 2, 1, 4) (3, 2, 4, 1) (3, 4, 1, 2) (3, 4, 2, 1) (4, 1, 2, 3) (4, 1, 3, 2) (4, 2, 1, 3) (4, 2, 3, 1) (4, 3, 1, 2) (4, 3, 2, 1)
Dalam kode di atas, kita telah mendapatkan kombinasi dari beberapa bilangan bulat
Permutasi panjang tetap
Kita dapat menghitung permutasi dari set panjang tetap di mana kita hanya mengambil sejumlah tertentu dari setiap permutasi elemen. Mari kita pahami contoh berikut
Contoh -
Keluaran
('H', 'e') ('H', 'l') ('H', 'l') ('H', 'o') ('e', 'H') ('e', 'l') ('e', 'l') ('e', 'o') ('l', 'H') ('l', 'e') ('l', 'l') ('l', 'o') ('l', 'H') ('l', 'e') ('l', 'l') ('l', 'o') ('o', 'H') ('o', 'e') ('o', 'l') ('o', 'l')
Dalam kode di atas, kami telah menghitung permutasi tetap dengan melewatkan panjang sebagai dua
Kombinasi Tali
Kombinasi adalah kumpulan elemen yang urutannya tidak dipermasalahkan. Modul itertools Python menyediakan metode combination() untuk menghitung kombinasi data yang diberikan. Kita dapat menghitung kombinasi string. Mari kita pahami contoh berikut
Contoh -
Keluaran
('A', 'B') ('A', 'C') ('B', 'C')
Kombinasi dengan Penggantian
Modul itertools terdiri dari metode lain yang disebut combination_with_replacement() yang juga mempertimbangkan kombinasi angka itu sendiri. Mari kita pahami contohnya
Kombinasi Set Numerik
Keluaran
('J', 'J') ('J', 'a') ('J', 'v') ('J', 'a') ('J', 't') ('J', 'p') ('J', 'o') ('J', 'i') ('J', 'n') ('J', 't') ('a', 'a') ('a', 'v') ('a', 'a') ('a', 't') ('a', 'p') ('a', 'o') ('a', 'i') ('a', 'n') ('a', 't') ('v', 'v') ('v', 'a') ('v', 't') ('v', 'p') ('v', 'o') ('v', 'i') ('v', 'n') ('v', 't') ('a', 'a') ('a', 't') ('a', 'p') ('a', 'o') ('a', 'i') ('a', 'n') ('a', 't') ('t', 't') ('t', 'p') ('t', 'o') ('t', 'i') ('t', 'n') ('t', 't') ('p', 'p') ('p', 'o') ('p', 'i') ('p', 'n') ('p', 't') ('o', 'o') ('o', 'i') ('o', 'n') ('o', 't') ('i', 'i') ('i', 'n') ('i', 't') ('n', 'n') ('n', 't') ('t', 't')
Kombinasi Set Numerik
Jika input yang diberikan dalam urutan terurut, tupel kombinasi akan dikembalikan dalam urutan terurut. Mari kita pahami contoh berikut
Contoh -
Keluaran
(1, 1, 1) (1, 1, 2) (1, 1, 3) (1, 1, 4) (1, 2, 2) (1, 2, 3) (1, 2, 4) (1, 3, 3) (1, 3, 4) (1, 4, 4) (2, 2, 2) (2, 2, 3) (2, 2, 4) (2, 3, 3) (2, 3, 4) (2, 4, 4) (3, 3, 3) (3, 3, 4) (3, 4, 4) (4, 4, 4)
Dalam tutorial ini, kita telah membahas modul itertools untuk menemukan permutasi dan kombinasi dari data yang diberikan menggunakan skrip Python