Pak Dengklek dan Pak Ganesh sedang bermain permainan favorit mereka, yaitu batu fibonacci. Permainan ini dimainkan dengan cara mengambil sejumlah batu dari sebuah tumpukan batu. Banyaknya batu yang boleh diambil untuk setiap giliran adalah sejumlah bilangan dari deret fibonacci yang lebih kecil dari banyaknya batu dalam tumpukan tersebut. Deret fibonacci adalah deret yang dibentuk dengan rumus f(1)=1, f(2)=1, f(n)=f(n-1)+f(n-2) untuk n = 3, 4, 5, …. Sebagai contoh, jika ada 9 batu dalam tumpukan, maka banyaknya batu yang boleh diambil adalah 1, 2, 3, 5, atau 8. Pemain yang menghabiskan tumpukan, dinyatakan sebagai pemenang. Diasumsikan bahwa Pak Dengklek dan Pak Ganesh bermain optimal, dan Pak Dengklek memulai permainan. Siapakah yang akan menang bila tumpukan terdiri dari 20 batu?
a. Pak Ganesh
b. Pak Dengklek
c. Seri
d. Tidak dapat ditentukan
e. -
kalo batunya 1 true
kalo batunya 2 true
kalo batunya 3 true
dan seterusnya hingga batu 20 >>>jika pak dengklek ambil 13 >> maka akan true sehingga pak ganesh menang
jika ambil 8 >> akan true sehingga ganesh menang
jika ambil 5 >>.true pak ganesh menang
dan seterusnya
karena semua true maka yg menang pasti pak ganesh
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
Di soal disebut : "...deret fibonacci yang lebih kecil dari banyaknya batu dalam tumpukan tersebut" -> Nggak bisa menang? Sekarang asumsi batu yang diambil lebih kecil atau sama dengan banyaknya batu dalam tumpukan (caranya bakal mirip-mirip) : Strategi bermain optimal : Kalau sekarang ada n batu, untuk bisa memastikan kemenangan, berapa banyak batu yang harus diambil supaya musuh pasti kalah? Untuk menjawab, misal ada fungsi g(n) yang menyatakan "Kalau sekarang giliran kita dan ada n batu, bisa nggak kita memastikan kita menang?". g(n) ini cuma bisa bernilai true atau false. Ngikutin strategi diawal, untuk ngitung g(n), tinggal cari x dimana x itu bilangan fibonacci <= n dan g(n - x) = false. Kalo bisa nemu x ini, kita pasti menang karena pemain yang jalan selanjutnya (yang punya n - x batu) udah DIPASTIKAN kalah karena g(n - x) = false. Base case : g(0) = false (udah gak ada batu yang bisa diambil, berarti pemain yang jalan sebelumnya yang menang karena udah ngabisin semua batunya). Tinggal ngisi fungsi g(n) : g(0) = false g(1) = true g(2) = true g(3) = true g(4) = false g(5) = true g(6) = true g(7) = true g(8) = true g(9) = true g(10) = false g(11) = true g(12) = true g(13) = true g(14) = false g(15) = true g(16) = true g(17) = true g(18) = true g(19) = true g(20) = false Karena g(20) = false, Pak Dengklek nggak mungkin menang -> Pak Ganesh pasti menang (A)
Masuk untuk menulis jawaban
D. pak dengklek
Dalam permainan ini, Pak Dengklek dapat menghitung rekurens dengan state sisa jumlah batu. Karena jumlah batu awal = 20 maka pilihan batu yang boleh diambil adalah : {1,2,3,5,8,13}.
Misalkan : f(x) adalah predikat “Apakah pemain yang mendapat giliran pada saat itu dapat menang dengan jumlah batu sebanyak x pada saat itu?”
Untuk f(1) = false krn Pak Dengklek otomatis kalah
Untuk f(2) = true krn apabila Pak Dengklek mengambil 1 batu, maka Pak Ganesh akan kalah
Untuk f(3) = true krn apabila Pak Dengklek mengambil 2 batu, maka Pak Ganesh akan kalah
Untuk f(4) = true krn apabila Pak Dengklek mengambil 3 batu, maka Pak Ganesh akan kalah
Untuk f(5) = false krn apabila Pak Dengklek mengambil 1, 2, atau 3 batu maka yang tersisa adalah f(2), f(3), f(4) yang bernilai true [Yang artinya apapun langkah yang dilakukan Pak Dengklek akan berdampak kemenangan bagi Pak Ganesh] .
Demikian pula untuk f(6), f(7), f(8), dan seterusnya dapat dicari dengan mengamati hubungan f(x) dengan f(x-n) dimana n={1,2,3,5,8,13} dan x-n>0
Sehingga diperoleh nilai dari f(20) = TRUE, yang artinya apabila Pak Dengklek mendapat giliran pertama, Pak Dengklek akan menang. (B)
f(20) akan false karena saat pak dengklek mengambil 13,8,5,3,2, ataupun 1. nilai sisanya, f(7,12,15,17,18,19) adalah true.
jawabannya b karena memang itu jawaban yg benar karn kalo salah nanti nilai lu berkurang dong kan seru lu mau gk nilai lu pada kurang gara2 salah gk mau kan makanya pilih jawaban b karena memnag itu yang bebar biar nilai lu 100
Bilangan Fibonacci Yang Diperbolehkan := 1,2,3,5,8,13;
Kemungkinan Permainannya Seperti ini:
g:= Ganesh; d:= Dengklek;
d(13),g(1),d(2),g(berapa pun pak ganesh mengambil batu, pak dengklek akan menang :v);
dengklek mengambil 13 sisa 7; ganesh mengambil 1 agar tidak bersisa fibonacci, sisa 6; denglek mengambil 2 agar ganesh kalah, dan bersisa 4;
jawaban:= B (Pak Dengklek)
jumlah batu 20. dengan asumsi bermain optimal mengambil batu paling besar dari bilangan fibonacci yaitu 1, 2, 3, 5, 8, 13.
permainan dimulai dari pak dengklek (mengambil 13 batu) 20-13=7
pak ganesha (mengambil 5 batu) 7-5=2
pak dengklek (mengambil 2 batu) 2-2=0
kesimpulannya pak dengklek menghabiskan batu yang ada.
jadi pemenangnya PAK DENGKLEK (B)
kalau optimal di giliran kedua pak ganesh akan mengambil 3 batu, dan pak ganesh menang
tapi kenapa salah ya? padahal harusnya jawabannya pak Ganesh?