Penerimaan Mahasiswa Baru Kelas Malam, Kelas Online, Kelas Karyawan

Cari di Ensiklopedi Bebas   
Indeks Artikel: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 +.- Daftar isi | Manual book
Artikel sebelumnya  (Melayu)(Membangkitkan PermutasiArtikel berikutnya

Membangkitkan Kombinasi

Membangkitkan Kombinasi dari sebuah himpunan S berarti membentuk himpunan C yang merupakan salah satu subhimpunan dari S.

Permasalahan umum dalam membangkitkan kombinasi adalah:

Diberikan sebuah himpunan S, tentukan:

  • Semua kombinasi yang mungkin dari himpunan S
  • Semua kombinasi r elemen dari himpunan S
  • Kombinasi r elemen dari himpunan S, pada indeks ke-i sesuai urutan leksikografik

Daftar isi

Membangkitkan Semua Kombinasi yang Mungkin

Cara paling mudah untuk membangkitkan semua kombinasi (himpunan bagian) yang mungkin adalah dengan menggunakan representasi biner.

Setiap himpunan bagian {a, b, c, d} yang berisi 4 elemen, dapat direpresentasikan sebagai bilangan biner 4 digit, yang masing masing bit menunjukkan ada tidaknya elemen tersebut dalam himpunan. Himpunan {a, c} misalnya, dapat direpresentasikan dengan bilangan biner 1010 (atau desimal 10), jika elemen-elemen a, b, c, d berturut-turut diwakili oleh bit ke 3, 2, 1, dan 0.

Himpunan : { a, b, c, d }
Representasi biner : 1 0 1 0
Himpunan bagian : { a, c }

Representasi seperti ini memetakan setiap macam kombinasi dengan tepat satu bilangan asli. Daftar berikut menunjukkan semua kombinasi dari {a, b, c, d} beserta representasi binernya.

Himpunan Biner Desimal --------------- ------ ------- { } 0000 0 { a } 1000 8 { b } 0100 4 { c } 0010 2 { d } 0001 1 { a, b } 1100 12 { a, c } 1010 10 { a, d } 1001 9 { b, c } 0110 6 { b, d } 0101 5 { c, d } 0011 3 { a, b, c } 1110 14 { a, b, d } 1101 13 { a, c, d } 1011 11 { b, c, d } 0111 7 { a, b, c, d } 1111 15

Berdasarkan ini kita dapat menyusun sebuah algoritma yang akan membentuk semua kombinasi yang mungkin, berdasarkan bilangan asli yang berkaitan dengannya. Banyak kombinasi yang mungkin untuk sebuah himpunan S, sesuai dengan banyaknya elemen himpunan kuasa dari S, adalah:

|mathcal{P}(S)| = 2^{|S|}

Maka bilangan asli yang berkaitan dengan masing-masing himpunan bagian S adalah berada dalam jangkauan 0 ... 2^{|S|}-1.

Berikut ini adalah pseudocode-nya:

Diberikan sebuah himpunan S: n = banyak elemen S for i = 0 to 2n-1 begin B = representasi bilangan i dalam bentuk biner S' = { } for j = 0 to n-1 begin if digit ke-j dari B adalah 1 then tambahkan kepada S' elemen ke-j dari S end Tuliskan S' end

Kelemahan algoritma ini adalah daftar kombinasi yang dihasilkan tidak otomatis dalam keadaan terurut secara leksikografik.

Membangkitkan Semua Kombinasi r elemen

Kombinasi ke-i dari r elemen

Lihat pula



Sumber :
wiki.kpt.co.id, id.wikipedia.org, buku.us, dsb.