- Beranda
- Komunitas
- Tech
- Programmer Forum
Tanya Pseudocode


TS
njiko
Tanya Pseudocode
Assalamu'alaykum,, selamat pagi
Agan2 yang jago algoritma, boleh minta sarannya gak?
Diketahui 2 buah array (sebut aja A dan B). Elemen pada array A berisi bilangan bulat acak, sedangkan elemen pada array B berisi 1 bilangan bulat yang nilainya lebih besar dari elemen terbesar pada array A. (Note: nilai SUM pada array A == nilai SUM pada array B)
Misal :
A = {A1,A2,A3,..... Am};
B = {B1,B1,B1,... B1};
Pertanyaannya :
Bagaimana algoritma membagi array A menjadi beberapa blok, dimana jumlah bloknya sebanyak jumlah elemen pada array B DAN jika elemen pada masing2 blok dijumlahkan maka akan mendapatkan nilai B1
Contoh soal 1 :
A = {4, 3, 2, 1};
B = {5,5};
maka
Blok A1 = {4,1};
Blok A2 = {3,2};
Nilai SUM pada masing2 blok = nilai B1 = 5
Contoh soal 2:
A = {10, 9, 7, 6, 6, 5, 4, 4, 3, 2};
B = {14, 14, 14, 14};
maka akan terbentuk 4 blok dengan nilai elemen masing2
Blok A1 = {10,4};
Blok A2 = {9,5};
Blok A3 = {7,4,3};
Blok A4 = {6,6,2};
Nilai SUM pada masing2 blok A1 dst == nilai B1 == 14
-----------------------------------
Kalau pseudocode yg sejauh ini ane buat :
n = jumlah elemen array B
for i = 1 sampai n
sisa = nilai B1
Blok_Ai = {};
while sisa ~= 0
idx = cari index nilai A terbesar yang nilainya <= sisa
sisa = sisa - A[idx];
Blok_Ai = {Blok_Ai A[idx]};
Hilangkan nilai A[idx]
end while
end for
Nah permasalahannya itu, masih ada salah (bakal error) di pseudocode ane...
Kalau menggunakan nilai A dan B pada contoh nomor 2 di atas, maka pada saat i=3
Blok A3 akan terisi {7,6, ..??} (nilai idx yg selanjutnya ga akan ada DAN nilai SUM pada A3 tidak akan mungkin sama dengan B1 atau 14)
---------
Makasih gan
Agan2 yang jago algoritma, boleh minta sarannya gak?
Diketahui 2 buah array (sebut aja A dan B). Elemen pada array A berisi bilangan bulat acak, sedangkan elemen pada array B berisi 1 bilangan bulat yang nilainya lebih besar dari elemen terbesar pada array A. (Note: nilai SUM pada array A == nilai SUM pada array B)
Misal :
A = {A1,A2,A3,..... Am};
B = {B1,B1,B1,... B1};
Pertanyaannya :
Bagaimana algoritma membagi array A menjadi beberapa blok, dimana jumlah bloknya sebanyak jumlah elemen pada array B DAN jika elemen pada masing2 blok dijumlahkan maka akan mendapatkan nilai B1
Contoh soal 1 :
A = {4, 3, 2, 1};
B = {5,5};
maka
Blok A1 = {4,1};
Blok A2 = {3,2};
Nilai SUM pada masing2 blok = nilai B1 = 5
Contoh soal 2:
A = {10, 9, 7, 6, 6, 5, 4, 4, 3, 2};
B = {14, 14, 14, 14};
maka akan terbentuk 4 blok dengan nilai elemen masing2
Blok A1 = {10,4};
Blok A2 = {9,5};
Blok A3 = {7,4,3};
Blok A4 = {6,6,2};
Nilai SUM pada masing2 blok A1 dst == nilai B1 == 14
-----------------------------------
Kalau pseudocode yg sejauh ini ane buat :
n = jumlah elemen array B
for i = 1 sampai n
sisa = nilai B1
Blok_Ai = {};
while sisa ~= 0
idx = cari index nilai A terbesar yang nilainya <= sisa
sisa = sisa - A[idx];
Blok_Ai = {Blok_Ai A[idx]};
Hilangkan nilai A[idx]
end while
end for
Nah permasalahannya itu, masih ada salah (bakal error) di pseudocode ane...
Kalau menggunakan nilai A dan B pada contoh nomor 2 di atas, maka pada saat i=3
Blok A3 akan terisi {7,6, ..??} (nilai idx yg selanjutnya ga akan ada DAN nilai SUM pada A3 tidak akan mungkin sama dengan B1 atau 14)
---------
Makasih gan

Diubah oleh njiko 19-08-2014 10:01
0
1.2K
2


Komentar yang asik ya
Urutan
Terbaru
Terlama


Komentar yang asik ya
Komunitas Pilihan