Generating Permutation

Permutasi merupakan banyaknya cara memilih k unsur dari suatu himpunan yang memiliki n unsur dengan memperhatikan urutan.
Suatu subhimpunan yang terbentuk baik secara kombinasi maupun permutasi dapat berupa subhimpunan yang berurutan mulai dari subhimpunan dengan nilai terkecil hingga terbesar, penggolongan Lexicographic, ({123},{132}..{321}) ataupun sebaliknya dan dapat pula tidak teratur.

Sebuah algoritma dapat dibentuk untuk menggenerate permutasi dan kombinasi dari himpunan {1,2,3,..,n} yang didasarkan pada sebuah prosedur untuk membangun subhimpunan dari permutasi dan kombinasi selanjutnya, sehingga subhimpunan pertama tidak mendahului subhimpunan selanjutnya atau dapat dikatakan penggolongan berdasarkan Lexicographic

Berikut prog yang saya coba buat,akan tetapi permutasi ini hanya sampai nilai k sama dengan 8… dan mungkin saja bisa ditambah untuk nilai yang lebih besar

#include<stdio.h>
#include<conio.h>

main()
{
int pilih,s;
char karakter;
awal:
clrscr();
puts(” ******************************”);
puts(” * PROGRAM GENERATING *”);
puts(” * PERMUTATION *”);
puts(” * Gigih Supriyatno *”);
puts(” * NPM.0506100681 *”);
puts(” * tingkat II TP *”);
puts(” ******************************\n”);

puts(“<*>Dalam program ini anda akan menghitung dan membangkitkan PERMUTASI”);
puts(“<*>r(r=1,2,..,8)suku dari sebuah himpunan s={1,2,3,…,n}”);
puts(” “);
printf(“<*>Masukan Jumlah elemen himpunan S = “);
scanf(“%d”, &s);
printf(“\n<*>Masukan nilai dari r = “);
scanf(“%d”, &pilih);

switch (pilih)
{
case 1: puts(“\nHasil permutasinya adalah :”);
permutasi1n(s);
break;
case 2: puts(“\nHasil permutasinya adalah :”);
permutasi2n(s);
break;
case 3: puts(“\nHasil permutasinya adalah :”);
permutasi3n(s);
break;
case 4: puts(“\nHasil permutasinya adalah :”);
permutasi4n(s);
break;
case 5: puts(“\nHasil permutasinya adalah :”);
permutasi5n(s);
break;
case 6: puts(“\nHasil permutasinya adalah :”);
permutasi6n(s);
break;
case 7: puts(“\nHasil permutasinya adalah :”);
permutasi7n(s);
break;
case 8: puts(“\nHasil permutasinya adalah :”);
permutasi8n(s);
break;
default:
{printf(“–>Maaf permintaan anda tak dilayani “);
printf(“\n karena kelebihan nilai r dari yang sudah ditentukan”);
printf(“\n Anda ingin mengulang(y/t)?\n”);
karakter=getch();
if(karakter==’y’||karakter==’Y’)
goto awal;
else
puts(“\nTerima Kasih ^-^”);
}
}

printf(“\n Anda ingin mengulang(y/t)?\n”);
karakter=getch();
if(karakter==’y’||karakter==’Y’)
goto awal;
else
puts(“\nTerima Kasih ^-^”);
getch();
}

permutasi1n(int x)
{
int a=1;
while(a<=x)
{printf(“%d) {%d}\n”,a,a);
a++;}
printf(“Jadi jumlah permutasi 1 dari %d atau P(%d,1)= %d”,x,x,a-1);
}

permutasi2n(int x)
{
int a,b,jumlah=0;
for(a=1;a<=x;a++)
{
for(b=1;b<=x;b++)
{
if(a!=b)
{
printf(“%d) {%d, %d}\n”,jumlah+1,a,b);
jumlah++;
}
else
continue;
}
}
printf(“Jadi jumlah permutasi 2 dari %d atau P(%d,2)= %d”,x,x,jumlah);
}

permutasi3n(int x)
{
int a,b,c,jumlah=0;
for(a=1;a<=x;a++)
{
for(b=1;b<=x;b++)
{
for(c=1;c<=x;c++)
{
if((a!=b)&&(b!=c)&&(a!=c))
{
printf(“%d) {%d, %d, %d}\n”,jumlah+1,a,b,c);
jumlah++;
}

}
}
}
printf(“Jadi jumlah permutasi 3 dari %d atau P(%d,3)= %d”,x,x,jumlah);
}

permutasi4n(int x)
{
int a,b,c,d,jumlah=0;
for(a=1;a<=x;a++)
{
for(b=1;b<=x;b++)
{
for(c=1;c<=x;c++)
{
for(d=1;d<=x;d++)
{
if((a!=b)&&(a!=c)&&(a!=d)&&(b!=c)&&(b!=d)&&(c!=d))
{
printf(“%d) {%d, %d, %d, %d}\n”,jumlah+1,a,b,c,d);
jumlah++;
}
}

}
}
}
printf(“Jadi jumlah permutasi 4 dari %d atau P(%d,4)= %d”,x,x,jumlah);
}

permutasi5n(int x)
{
int a,b,c,d,e,jumlah=0;
for(a=1;a<=x;a++)
{
for(b=1;b<=x;b++)
{
for(c=1;c<=x;c++)
{
for(d=1;d<=x;d++)
{
for(e=1;e<=x;e++)
if((a!=b)&&(a!=c)&&(a!=d)&&(a!=e)&&(b!=c)&&(b!=d)&&(b!=e)&&(c!=d)&&(c!=e)&&(d!=e))
{
printf(“%d) {%d, %d, %d, %d, %d}\n”,jumlah+1,a,b,c,d,e);
jumlah++;
}
}

}
}
}
printf(“Jadi jumlah permutasi 5 dari %d atau P(%d,5)= %d”,x,x,jumlah);
}

permutasi6n(int x)
{
int a,b,c,d,e,f,jumlah=0;
for(a=1;a<=x;a++)
{
for(b=1;b<=x;b++)
{
for(c=1;c<=x;c++)
{
for(d=1;d<=x;d++)
{
for(e=1;e<=x;e++)
{
for(f=1;f<=x;f++)
if((a!=b)&&(a!=c)&&(a!=d)&&(a!=e)&&(a!=f)&&(b!=c)&&(b!=d)&&(b!=e)&&(b!=f)&&(c!=d)&&(c!=e)&&(c!=f)&&(d!=e)&&(d!=f)&&(e!=f))
{
printf(“%d) {%d, %d, %d, %d, %d, %d}\n”,jumlah+1,a,b,c,d,e,f);
jumlah++;
}
}
}

}
}
}
printf(“Jadi jumlah permutasi 6 dari %d atau P(%d,6)= %d”,x,x,jumlah);
}

permutasi7n(int x)
{
int a,b,c,d,e,f,g,jumlah=0;
for(a=1;a<=x;a++)
{
for(b=1;b<=x;b++)
{
for(c=1;c<=x;c++)
{
for(d=1;d<=x;d++)
{
for(e=1;e<=x;e++)
{
for(f=1;f<=x;f++)
{
for(g=1;g<=x;g++)
if((a!=b)&&(a!=c)&&(a!=d)&&(a!=e)&&(a!=f)&&(a!=g)&&(b!=c)&&(b!=d)&&(b!=e)&&(b!=f)&&(b!=g)&&(c!=d)&&(c!=e)&&(c!=f)&&(c!=g)&&(d!=e)&&(d!=f)&&(d!=g)&&(e!=f)&&(e!=g)&&(f!=g))
{
printf(“%d) {%d, %d, %d, %d, %d, %d, %d}\n”,jumlah+1,a,b,c,d,e,f,g);
jumlah++;
}
}
}
}

}
}
}
printf(“Jadi jumlah permutasi 7 dari %d atau P(%d,7)= %d”,x,x,jumlah);
}

permutasi8n(int x)
{
int a,b,c,d,e,f,g,h,jumlah=0;
for(a=1;a<=x;a++)
{
for(b=1;b<=x;b++)
{
for(c=1;c<=x;c++)
{
for(d=1;d<=x;d++)
{
for(e=1;e<=x;e++)
{
for(f=1;f<=x;f++)
{
for(g=1;g<=x;g++)
{
for(h=1;h<=x;h++)
{
if((a!=b)&&(a!=c)&&(a!=d)&&(a!=e)&&(a!=f)&&(a!=g)&&(a!=h)&&(b!=c)&&(b!=d)&&(b!=e)&&(b!=f)&&(b!=g)&&(b!=h)&&(c!=d)&&(c!=e)&&(c!=f)&&(c!=g)&&(c!=h)&&(d!=e)&&(d!=f)&&(d!=g)&&(d!=h)&&(e!=f)&&(e!=g)&&(e!=h)&&(f!=g)&&(f!=h)&&(g!=h))
{
printf(“%d) {%d, %d, %d, %d, %d, %d, %d, %d}\n”,jumlah+1,a,b,c,d,e,f,g,h);
jumlah++;
}
}
}
}
}

}
}
}
}
printf(“Jadi jumlah permutasi 8 dari %d atau P(%d,8)= %d”,x,x,jumlah);
}



 


Satu pemikiran pada “Generating Permutation

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s