permutasi adalah penyusunan kembali suatu kumpulan objek dalam urutan yang berbeda dari urutan yang semula.
sebagai contoh, kata-kata dalam kalimat sebelumnya dapat disusun kembali sebagai "adalah permutasi suatu urutan yang berbeda urutan yang kumpulan semula objek penyusunan kembali dalam dari."
proses mengembalikan objek-objek tersebut pada urutan yang baku (sesuai ketentuan) disebut sorting.
jika terdapat suatu untai abjad abcd, maka untai itu dapat dituliskan kembali dengan urutan yang berbeda: acbd, dacb, dan seterusnya.
selengkapnya ada 24 cara menuliskan keempat huruf tersebut dalam urutan yang berbeda satu sama lain.
abcd abdc acbd acdb adbc adcb
bacd badc bcad bcda bdac bdca
cabd cadb cbad cbda cdab cdba
dabc dacb dbac dbca dcab dcba
setiap untai baru yang tertulis mengandung unsur-unsur yang sama dengan untai semula abcd, hanya saja ditulis dengan urutan yang berbeda.
maka setiap untai baru yang memiliki urutan berbeda dari untai semula ini disebut dengan permutasi dari abcd.
menghitung banyaknya permutasi yang mungkin
untuk membuat permutasi dari abcd, dapat diandaikan bahwa terdapat empat kartu bertuliskan masing-masing huruf, yang hendak kita susun kembali.
juga terdapat 4 kotak kosong yang hendak kita isi dengan masing-masing kartu:
kartu kotak kosong
a b c d [ ] [ ] [ ] [ ]
maka kita dapat mengisi setiap kotak dengan kartu.
tentunya setiap kartu yang telah dipakai tidak dapat dipakai di dua tempat sekaligus.
prosesnya digambarkan sebagai berikut:
di kotak pertama, kita memiliki 4 pilihan kartu untuk dimasukkan.
a b c d [ ] [ ] [ ] [ ]
^ 4 pilihan: a, b, c, d
sekarang, kondisi kartunya tinggal 3, maka kita tinggal memiliki 3 pilihan kartu untuk dimasukkan di kotak kedua.
a * c d [b] [ ] [ ] [ ]
^ 3 pilihan: a, c, d
karena dua kartu telah dipakai, maka untuk kotak ketiga, kita tinggal memiliki dua pilihan.
a * c * [b] [d] [ ] [ ]
^ 2 pilihan: a, c
kotak terakhir, kita hanya memiliki sebuah pilihan.
a * * * [b] [d] [c] [ ]
^ 1 pilihan: a
kondisi terakhir semua kotak sudah terisi.
* * * * [b] [d] [c] [a]
di setiap langkah, kita memiliki sejumlah pilihan yang semakin berkurang.
maka banyaknya semua kemungkinan permutasi adalah 4321 = 24 buah.
jika banyaknya kartu 5, dengan cara yang sama dapat diperoleh ada 54321 = 120 kemungkinan.
maka jika digeneralisasikan, banyaknya permutasi dari n unsur adalah sebanyak .
setiap permutasi dapat kita kaitkan dengan barisan bilangan yang disebut sebagai barisan bilangan inversi.
setiap unsur dalam permutasi dikaitkan dengan sebuah bilangan yang menunjukkan banyaknya unsur setelah unsur tersebut, yang posisinya salah.
sebagai contoh, salah satu permutasi dari untai abcdefg adalah dacfgeb.
maka untuk setiap unsur dacfgeb dapat dibuat bilangan inversinya:
ada 3 huruf setelah posisi 0, yang seharusnya berada sebelum d, yaitu a, b, dan c.
tidak ada huruf setelah posisi 1, yang seharusnya berada sebelum a.
ada 1 huruf setelah posisi 2, yang seharusnya berada sebelum c, yaitu b.
ada 2 huruf setelah posisi 3, yang seharusnya berada sebelum f, yaitu e, dan d.
ada 2 huruf setelah posisi 4, yang seharusnya berada sebelum g, yaitu e, dan b.
ada 1 huruf setelah posisi 5, yang seharusnya berada sebelum g, yaitu b.
tidak ada huruf setelah b.
maka barisan bilangan inversi dari dacfgeb adalah 3, 0, 1, 2, 2, 1, 0.
barisan bilangan inversi dapat dimengerti sebagai sebuah sistem bilangan, yang setiap digitnya memiliki sifat:
sistem bilangan ini disebut sebagai faktoradik.
masing-masing faktoradik dapat diubah maupun dibentuk dari bilangan desimal.
ini berguna untuk dapat menghasilkan permutasi ke-k dari sebuah untai.
permasalahan umum yang terdapat seputar membangkitkan permutasi adalah:
diberikan sebuah untai s, tentukan:
semua permutasi dari s
semua permutasi n-elemen dari s
permutasi berikutnya setelah s
permutasi ke-k dari s sesuai urutan leksikografik (atau aturan lainnya)
jenis-jenis permutasi lainnya
permutasi-k dari n benda
terkadang kita hanya ingin menyusun ulang sejumlah elemen saja, tidak semuanya.
permutasi ini disebut permutasi-k dari n benda.
pada contoh untai abcd, maka permutasi-2 dari abcd (yang semuanya ada 4 unsur) adalah sebanyak 12:
ab ac ad
ba bc bd
ca cb cd
da db dc
sedangkan permutasi-3 dari untai yang sama adalah sebanyak 24:
abc abd acb acd adb adc
bac bca bad bda bcd bdc
cab cba cad cda cbd cdb
dab dba dac dca dbc dcb
banyaknya kemungkinan permutasi seperti ini adalah
permutasi dengan elemen yang identik
terkadang tidak semua unsur dalam permutasi dapat dibedakan.
unsur-unsur ini adalah unsur-unsur yang identik atau sama secara kualitas.
suatu untai aabc terdiri dari 4 macam unsur, yaitu a, b, dan c tetapi unsur a muncul sebanyak dua kali.
kedua a tersebut identik.
permutasi dari aabc adalah berjumlah 12:
aabc aacb abac abca
acab acba baac baca
bcaa caab caba cbaa
ini bisa dimengerti sebagai permutasi biasa dengan kedua unsur a dibedakan, yaitu a0 dan a1:
a0a1bc a1a0bc = aabc
a0a1cb a1a0cb = aacb
a0ba1c a1ba0c = abac
a0bca1 a1bca0 = abca
a0ca1b a1ca0b = acab
a0cba1 a1cba0 = acba
ba0a1c ba1a0c = baac
ba0ca1 ba1ca0 = baca
bca0a1 bca1a0 = bcaa
ca0a1b ca1a0b = caab
ca0ba1 ca1ba0 = caba
cba0a1 cba1a0 = cbaa
total permutasi dari untai aabc adalah sebanyak 4! = 24.
tetapi total permutasi ini juga mencakup posisi a0 dan a1 yang bertukar-tukar, yang jumlahnya adalah 2! (karena a terdiri dari 2 unsur: a0 dan a1).
dengan demikian jika dianggap a0 = a1 maka banyak permutasinya menjadi 4! dibagi dengan 2!.
cara menghitung ini dapat digeneralisasikan:
untuk untai s sepanjang n yang mengandung satu macam unsur identik sebanyak k:
lebih umum lagi, jika panjang untai adalah n, mengandung m macam unsur yang masing-masing adalah sebanyak k1, k2, ..., km, maka:
sebagai contoh, untai aaaaabbcccdddddd terdiri dari 5 a, 2 b, 3 c, dan 6 d, maka banyaknya permutasi yang dapat dibentuk:
dalam permutasi biasa, misalnya abcd, setiap unsur hanya muncul satu kali, sehingga
unsur yang identik tersebut tidak perlu benar-benar identik, tetapi bisa merupakan unsur yang berbeda, tetapi ada kualitas tertentu yang kita anggap sama dari kedua unsur tersebut.
sebagai contoh, huruf a dan huruf a bisa dianggap identik untuk keperluan tertentu.
permutasi siklis menganggap elemen disusun secara melingkar.
pada susunan di atas, kita dapat membaca untai tersebut sebagai salah satu dari untai-untai berikut:
cara membaca untai abcdefgh dalam susunan melingkar tersebut bermacam-macam, maka setiap macam cara kita anggap identik satu sama lain.
permutasi siklis dapat dihitung dengan menganggap bahwa satu elemen harus ditulis sebagai awal untai.
^ bagian yang dipermutasikan
dengan menganggap panjang untai (atau banyaknya elemen) adalah n, dan karena elemen awal tidak boleh diubah-ubah posisinya, maka banyaknya elemen yang dapat berubah-ubah posisinya adalah n-1.
dengan demikian kita cukup mempermutasikan elemen yang dapat berubah-ubah posisi saja, yaitu sebanyak .
kombinasi dan permutasi
using permutations in .net for improved systems security