Perhatikan pseudocode berikut:
function f(x: integer) : integer; begin if(x = 0) then f := 0 else f := 1 - f(x - 1); end;
Ada berapa banyak nilai f(n) (1 <= n <= 2017) yang bernilai true?
a. 1008
b. 1009
c. 2016
d. 2017
e. 1
Jika ingin mendownvote, jangan lupa juga untuk komen tentang kesalahannya. That'll be helpful for everyone, don't let that be a habit.
Fungsi tersebut didefinisikan sebagai: Jika maka fungsi bernilai 0. Selain itu fungsi bernilai
.
Evaluasikan untuk dan
:
Kita peroleh nilai ,
dan
. Perhatikan bahwa fungsi ini sama saja dengan fungsi ganjil genap, dengan artian untuk setiap
adalah bilangan genap maka fungsi bernilai 0 dan setiap
adalah bilangan ganjil maka fungsi bernilai 1. Sehingga bisa kita simpulkan bahwa fungsi tersebut adalah:
function f(x:integer):integer;
begin
if (x mod 2)=0 then f:=0
else f:=1;
end;
Di antara kisaran , terdapat 1009 bilangan ganjil dan 1008 bilangan genap. Dengan maksud bahwa
dan
, maka terdapat 1009 bilangan yang true pada kisaran nilai
tersebut.
Masuk untuk menulis jawaban
Hai
Dikatakan true jika nilai f=1 dan false jika f=0
Fungsi ini akan memanggil fungsi yg nilai n nya lebih kecil,ada baiknya kerjakan dari nilai n yg terkecil (1 dst)
Untuk n=1 maka f = 1
Untuk n = 2 maka f = 1 - f(1) = 0
Untuk n = 3 maka f= 1- f(2) = 1
Untuk n = 4 maka f = 1 - f(3) = 0
dst hingga n = 2017
Dapat dilihat bila n= ganjil maka nilai f=1=true dan bila n=genap nilai f=0=false
Jadi banyak nilai f(n)=true dalam interval (1<=n<=2017) adalah banyak bilangan ganjil = 1009 bilangan (B)
Follow Your Dreams
Untuk n=1 maka f = 1
Untuk n = 2 maka f = 1 - f(1) = 0
Untuk n = 3 maka f= 1- f(2) = 1
Untuk n = 4 maka f = 1 - f(3) = 0
polanya bila n=ganjil maka true
dan jika n = genap maka false
dalam 2017 ada 1009 bilangan ganjil (B)
cari aja byk bilangan ganjil nya
1009