Arsip: Himpunan dan himpunan bagian

more 13 years ago
telkom_1
Rekan2 mo nanya neh...
Bagaimana caranya mencari himpunan bagian dari suatu himpunan,
selain himpunan kosong.
Misalnya :
Input:
A = {a,b,c}[/b:95646dbfd3]
[b:95646dbfd3]Output:
{a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c}
Jadi jumlah output seluruhnya ada --> (2 pangkat n) - 1 = 2³-1 = 8-1=7
(Himpunan kosong tidak termasuk).
Inputan terserah user.
Mohon bantuannya. Terima kasih.
:)

more 13 years ago
telkom_1
Rekan2 mo nanya neh...
Bagaimana caranya mencari himpunan bagian dari suatu himpunan,
selain himpunan kosong.
Misalnya :
Input:
A = {a,b,c}[/b:dd1d5d7401]
Output:
[b:dd1d5d7401]{a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c}
Jadi jumlah output seluruhnya ada --> (2 pangkat n) - 1 = 2³-1 = 8-1=7
(Himpunan kosong tidak termasuk).
Inputan terserah user.
Mohon bantuannya. Terima kasih.
Smile

more 13 years ago
_lmz
2^3 - 1 itu bukan kebetulan. Ini bisa dianggap anda memiliki bilangan 3 bit dan mau menghitung semua kombinasi 3 bit tersebut kecuali 0.
Untuk mengeluarkan semua outputnya anda tinggal menjalankan counter dari 1 sampai 2^n - 1 dan mengubah bit di bilangan tersebut menjadi anggota himpunan anda (misal a, b, dan c di kasus tersebut).
Contoh u/ kasus anda:
1 -> biner 0 0 1 -> {c}
2 -> biner 0 1 0 -> {b}
3 -> biner 0 1 1 -> {b, c}
4 -> biner 1 0 0 -> {a}
5 -> biner 1 0 1 -> {a, c}
6 -> biner 1 1 0 -> {a, b}
7 -> biner 1 1 1 -> {a, b, c}
Untuk mengetes bit dapat dilakukan dengan operator "and" seperti:
var i : integer;
for i := 1 to 7 do begin
if (i and 1) <> 0 then write('c');
if (i and 2) <> 0 then write('b');
if (i and 4) <> 0 then write('a');
writeln;
end;

more 13 years ago
telkom_1
In Delphindo@yahoogroups.com
Agung Dewandaru wrote:
program ProjectEnum;
{ mengenumerasi subset dari sebuah set. pendekatan rekursif. }
{$APPTYPE CONSOLE}
uses
SysUtils;
type TElement = record
IsMember: boolean;
Symbol: Char;
end;
type TMySet = array of TElement;
procedure PrintOutSet(S: TMySet);
var I: Integer;
begin
Writeln;
for I := 0 to Length(S) - 1 do
begin
if S[I].IsMember then
Write(S[I].Symbol);
end;
end;
procedure Loop(S: TMySet; Idx: Integer);
var I: Integer;
begin
if Idx = Length(S) then begin
PrintOutSet(S);
exit;
end;
for I := 0 to 1 do
begin
S[Idx].IsMember := I = 1;
Loop(S, Idx + 1);
end;
end;
procedure GenSet(S: TMySet);
begin
Loop(S,0);
end;
var S: TMySet;
begin
{ TODO -oUser -cConsole Main : Insert code here }
SetLength(S,4);
S[0].Symbol := 'a';
S[1].Symbol := 'b';
S[2].Symbol := 'c';
S[3].Symbol := 'd';
GenSet(S);
ReadLn;
end.
Rekan2,
saya sudah coba mencari himpunan bagian dengan algoritma ini,
bisa diterapkan untuk jumlah anggota himpunan < 20
kalo n nya udah lebih besar dari 20 udah susah, lama bgt nunggunya.
karena jumlah yang digenerate : 2^n
klo anggota himpunanya 20 : 1048576 subset.
klo anggota himpunanya 21 : 2097152 subset.
klo anggota himpunanya 22 : 4194304 subset.
.
.
dst.
Jadi, jumlah subset yang digenerate = 2 kali lipat dari jumlah sebelumnya.
Rekan2,
Kira2 ada yang lebih efisien lagi ngak?
Terima kasih sebelumnya. :)more ...
- Pages:
- 1
reply |
Report Obsolete
Last Articles
- Lazarus Release 2.0.12
- Project Group dalam Lazarus
- FastPlaz Database Explorer
- Release: FastPlaz Super Mom v0.12.22
- PascalClass #3: Web Development with Free Pascal
- Makna Pascal di Pascal Indonesia
- Kulgram : Instalasi Lazarus di Perangkat Berbasis ARM
- PascalClass #1: Analisa Database dan Machine Learning
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
- Mengenal OXYGENE – Pascal For .NET
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 6 months ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 6 months ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 7 months ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 1 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 8 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 8 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 8 years ago
Random Topic
- Akses Applikasi Via Internet
by sly_boy in Tutorial & Community Project more 13 years ago - mengakses database access berpassword
by gito in Hal umum tentang Pascal Indonesia more 13 years ago - Media Player yang Fullscreen...
by BadBoy in Multimedia & Graphic Enhancement more 14 years ago - Ada yang punya komponen Mysql ???
by kingstoneboy in Enginering more 14 years ago - delphi+Ado sql sum errors?
by zean in Hal umum tentang Pascal Indonesia more 14 years ago - prosedur yang perlu diketahui jika terjadi sweeping
by maulaku in OOT more 13 years ago - RAS client
by barkah in Delphi.NET more 14 years ago - Apakah Program Anda Siap Jalan di OS Windows Vista ?
by MrMixer in Form Enhancement & Graphical Controls more 14 years ago - RecordCount
by Yudho in Hal umum tentang Pascal Indonesia more 14 years ago - Tanya nama komponen Delphi
by fatahjunaidi in OOT more 12 years ago