My first Magazine pemrograman-kompetitif-dasar | Page 34
2 Matematika Diskret Dasar
Dalam dunia pemrograman, kadang kala dibutuhkan perhitungan seluruh nilai C r n yang meme-
nuhi n ≤ N, untuk suatu N tertentu. Pencarian nilai dari C r n dengan menghitung faktorial memiliki
kompleksitas O(n). Apabila seluruh nilai kombinasi dicari dengan cara tersebut, kompleksitas
n−1
akhirnya adalah O(N 3 ). Namun, dengan menggunakan persamaan C r n = C r−1
+C r n−1 , maka secara
keseluruhan kompleksitasnya dapat menjadi O(N 2 ).
Algoritma 9 merupakan implementasi untuk pencarian seluruh nilai kombinasi C r n yang
memenuhi n ≤ N, untuk suatu N.
Algoritma 9 Penggunaan Segitiga Pascal untuk mencari kombinasi.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
24
procedure PRECOMPUTE C OMBINATION (N)
C ← new integer[N + 1][N + 1]
for i ← 0, N do
C[i][0] ← 1
for j ← 1, i − 1 do
C[i][ j] = C[i − 1][ j − 1] +C[i − 1][ j]
end for
C[i][i] ← 1
end for
end procedure
. Sediakan C berukuran (N + 1) × (N + 1)