OSP 2012

  1. Dari definisi fungsi berikut, berapa kalikah F5(4) dieksekusi pada pengeksekusian F5(8)?
    function F5(n : integer) : integer;
    begin
        if (n = 1) or (n = 2) then
            F5 := 1
        else
            F5 := F5(n - 1) + F5(n - 2);
    end;    
    
  2. Gunakan F5 pada soal nomor 29, berapa kalikah F5(n-k) dieksekusi pada pengeksekusian F5(n) (dengan n>k>2, notasikan jawaban anda dalam F5, n dan k)?

  1. Fungsi akan memanggil secara rekursi dengan parameter n-1 dan n-2. Sehingga F5(8) = F5(7) + F5(6)
    F5(7) = F5(6) + F5(5) [f5(6) dieksekusi sebanyak 2x oleh F5(8) dan F5(7)]
    F5(6) = F5(5) + F5(4) [F5(5) dieksekusi oleh F5(7) dan F5(6). Karena F5(6) dieksekusi dua kali, maka F5(5) dieksekusi sebanyak 2+1 kali] F5(5) = F5(4) + F5(3), F5(4) dieksekusi oleh F5(6) dan F5(5). Sehingga total pemanggilan F5(4) adalah 2 + 3 = 5.

    Cara lain:
    F5(8) dieksekusi sekali
    F5(7) dieksekusi sekali oleh F5(8)
    F5(6) dieksekusi oleh F5(8) dan F5(7), sehingga akan menjadi pola fibonacci yang dimulai dari n = 8:
    1, 1, 2, 3, 5, 8, 13, (tidak berlaku untuk 1 karena 1 hanya dieksekusi ketika n = 3 saja).

  2. Misalkan g(x) adalah banyaknya F5(x) dieksekusi, maka: g(1) akan bernilai sama dengan F5(x), g(2) akan sama dengan F5(x-1). Jadi g(a) = F5(x-a+1), dengan F5(x) adalah pemanggilan awal.
    Sehingga g(n-k) = F5(n-(n-k)+1) = F5(k+1).

Share Now:

5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

Langganan

Subscribe To Our Newsletter

0
Would love your thoughts, please comment.x
()
x

Follow TikTok Kami @cahinfor

Pembahasan soal tahun 2023 sudah tersedia di TikTok Kami loh!