Program Permutasi dan Kombinasi dalam Bahasa C++
Permutasi merupakan bentuk khusus aplikasi aturan perkalian. Misalkan jumlah objek adalah n, maka urutan pertama dipilih dari n objek, urutan kedua dipilih dari n - 1 objek, urutan ketiga dipilih dari n - 2 objek, begitu seterusnya, dan urutan terakhir dipilih dari 1 objek yang tersisa.
n(n - 1) (n - 2) ... (2)(1) = n!
Bentuk khusus dari permutasi adalah kombinasi. Jika pada permutasi urutan kemunculan diperhitungkan, maka pada kombinasi, urutan kemunculan diabaikan. Urutan acb, bca, dan acd dianggap sama dan hanya dihitung sekali.
Berikut ini adalah sebuah program menghitung permutasi dan kombinasi dalam bahasa pemrograman C++
int faktorial(int X){
int i=1, f;
f=1;
while(i<=X)
{
f=f*i;
i++;
}
return(f);
}
#include <iostream>
using namespace std;
int main(){
int n, r, a, permutasi, kombinasi;
char h;
cout<<"PERMUTASI DAN KOMBINASI"<<endl;
cout<<"======================="<<endl<<endl;
cout<<"Permutasi atau Kombinasi ? (p/k) : ";
cin>>h;
cout<<endl;
cout<<"Tentukan nilai n : ";
cin>>n;
cout<<"Tentukan nilai r : ";
cin>>r;
cout<<endl;
a=n-r;
switch (h)
{
case 'p':
permutasi=faktorial(n)/faktorial(a);
cout<<"Hasil permutasi dari "<<n<<" dan "<<r<<" adalah "<<permutasi<<endl;
break;
case 'k':
kombinasi=faktorial(n)/(faktorial(a)*faktorial(r));
cout<<"Hasil kombinasi dari "<<n<<" dan "<<r<<" adalah "<<kombinasi<<endl;
break;
}
}
n(n - 1) (n - 2) ... (2)(1) = n!
Bentuk khusus dari permutasi adalah kombinasi. Jika pada permutasi urutan kemunculan diperhitungkan, maka pada kombinasi, urutan kemunculan diabaikan. Urutan acb, bca, dan acd dianggap sama dan hanya dihitung sekali.
Berikut ini adalah sebuah program menghitung permutasi dan kombinasi dalam bahasa pemrograman C++
int faktorial(int X){
int i=1, f;
f=1;
while(i<=X)
{
f=f*i;
i++;
}
return(f);
}
#include <iostream>
using namespace std;
int main(){
int n, r, a, permutasi, kombinasi;
char h;
cout<<"PERMUTASI DAN KOMBINASI"<<endl;
cout<<"======================="<<endl<<endl;
cout<<"Permutasi atau Kombinasi ? (p/k) : ";
cin>>h;
cout<<endl;
cout<<"Tentukan nilai n : ";
cin>>n;
cout<<"Tentukan nilai r : ";
cin>>r;
cout<<endl;
a=n-r;
switch (h)
{
case 'p':
permutasi=faktorial(n)/faktorial(a);
cout<<"Hasil permutasi dari "<<n<<" dan "<<r<<" adalah "<<permutasi<<endl;
break;
case 'k':
kombinasi=faktorial(n)/(faktorial(a)*faktorial(r));
cout<<"Hasil kombinasi dari "<<n<<" dan "<<r<<" adalah "<<kombinasi<<endl;
break;
}
}
Tidak ada komentar: