Permutasi Dan Kombinasi Di Python

Di Python kita mampu dengan praktis mencari permutasi dan kombinasi. Python menyediakan metode langsung untuk mendapat permutasi dan kombinasi dari suatu sequence. Metode ini terdapat di dalam paket itertools.





Permutasi



Pertama sekali untuk mampu melakukan permutasi di Python kita harus mengimpor fungsi permutations dari paket itertools. Fungsi permutations() mendapat argumen list sebagai input dan mengembalikan sebuah list berisi semua permutasi yang mungkin.



 
# Program Python untuk mencetak semua
# permutasi menggunakan fungsi dari library python
from itertools import permutations


# Mendapatkan semua permutasi dari [1, 2, 3]
perm = permutations([1, 2, 3])


# Print semua permutasi
for i in perm:
print(i)



Output



(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)


Fungsi permutasi membangkitkan permutasi n! jika banyak anggota = n.



Jika kita menginginkan permutasi dengan panjang yang ditentukan, maka caranya yaitu sebagai berikut:



 
# Program Python untuk mencetak semua
# permutasi dengan panjang ditentukan
from itertools import permutations


# Mendapatkan semua permutasi dari [1, 2, 3]
perm = permutations([1, 2, 3],2)


# Print semua permutasi
for i in perm:
print(i)



Output



(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)


 




Kombinasi



Fungsi combinations mendapat argumen list dan sebuah bilangan r, dan mengembalikan daftar tuple dari semua kombinasi dengan panjang r yang mungkin.



 
# Program Python untuk mencetak semua
# kombinasi dengan panjang tertentu
from itertools import combinations


# Mendapatkan semua kombinasi dari [1, 2, 3]
# dengan panjang 2
comb = combinations([1, 2, 3], 2)


# Print semua kombinasi
for i in comb:
print(i)



Output



(1, 2)
(1, 3)
(2, 3)




Kombinasi secara default akan ditampilkan sesuai dengan urutan inputnya. Jadi, jika list input diurutkan, maka hasil kombinasinya akan terurut juga.



 
# Program Python untuk menampilkan semua kombinasi
# dari input yang tidak berurut
from itertools import combinations


# Mendapatkan kombinasi dari [2, 1, 3]
# dan panjang 2
comb = combinations([2, 1, 3], 2)


# Menampilkan kombinasi
for i in comb:
print(i)



Output



(2, 1)
(2, 3)
(1, 3)




Pada kombinasi, semua elemen diperlakukan unik sesuai posisinya, dan bukan berdasarkan nilainya. Jadi, jika elemen inputnya unik, tidak ada nilai yang berulang ditiap kombinasi.



 



 
# Program Python untuk menampilkan semua kombinasi
# dengan elemen yang sama
from itertools import combinations


# Mendapatkan kombinasi dari [1, 1, 3]
# dan panjang 2
comb = combinations([1, 1, 3], 2)


# Menampilkan kombinasi
for i in comb:
print(i)



Output



(1, 1)
(1, 3)
(1, 3)




Jika kita menginginkan kombinasi yang elemennya sama, kita mampu menggunakan fungsi combinations_with_replacement()



 
# Program Python untuk menampilkan semua kombinasi
# dengan mengizinkan kombinasi anggota yang sama
from itertools import combinations_with_replacement


# Mendapatkan kombinasi dari [1, 1, 3]
# dan panjang 2
comb = combinations_with_replacement([1, 2, 3], 2)


# Menampilkan kombinasi
for i in comb:
print(i)



Output



(1, 1)
(1, 2)
(1, 3)
(2, 2)
(2, 3)
(3, 3)


Popular posts from this blog

Subitems Listview Berwarna Selang Seling

Source Code Aplikasi Tagihan Internet Memakai Php