Deskripsi Untuk Soal Nomor 48 dan 50
Perhatikan fungsi berikut
function wah(x, y: integer) : integer;
begin
if ((x = 0) and (y = 0)) then wah := 0;
else if (x > y) then
begin
if (x > -y) then wah := wah(x – 1, y) + 1;
else wah := wah(x, y + 1) + 1;
end
else
begin
if (x > -y) then wah := wah(x, y - 1) + 1;
else wah := wah(x + 1, y) + 1;
end;
end;Pemanggilan wah(3, 3) menghasilkan?
A. 3
B. 6
C. 9
D. 12
E. Tidak ada pilihan jawaban yang benar
Pemanggilan wah(-4, 2) menghasilkan?
A. 2
B. 4
C. 6
D. 8
E. Tidak ada pilihan jawaban yang benar
Ada berapa pasangan x dan y yang berbeda dimana wah(x, y) mengeluarkan hasil 3?
A. 6
B. 12
C. 3
D. 8
E. Tidak ada pilihan jawaban yang benar
Lazy Person
Pertama, kita modelkan dahulu kode di atas agar lebih mudah dibaca.
Berdasarkan pemodelan di atas, kita tahu bahwa untuk setiap iterasi dari fungsi rekursi wah() akan melakukan penjumlahan +1.
Dan tebak saja, adanya operasi penjumlahan dan pengurangan untuk x serta y semata-mata hanya agar x = 0 dan y = 0 (kondisi agar rekursi berhenti).
Sehingga, wah(3, 3) sama saja dengan 3 + 3 = 6. Dan, wah(-4, 2) sama saja dengan |-4| + 2 = 4 + 2 = 6. Maka, kita mendapatkan persamaan berikut.
Nomor 48
Nomor 49
Nomor 50
Kita tahu bahwa wah(x, y) = |x| + |y|
Jadi, berapa banyak kemungkinan untuk mendapatkan hasil penjumlahan berupa 3?
A = {(-3, 0), (-2, -1), (-1, -2), (0, -3), (1, -2), (2, -1), (3, 0), (-2, 1), (-1, 2), (2, 1), (1, 2), (0, 3)}
n(A) = 12
Jadi, jawabannya 12.
Masuk untuk menulis jawaban