2014 2015 2016 2017 2018

Funkcijų skaičiavimas

Taškai: 9

Bebro kompiuteris apdoroja informaciją tik keletu operacijų:

•    (R f (x1,x2, … xn)) pateikia rezultatą  x1 f x2 f … f xn

(f yra funkcija, o xi – bet kurie skaičiai). Pavyzdžiui: (R + (1, 2, 3, 4)) pateikia 1 + 2 + 3 + 4, t.y. 10.

•    (M f (x2 ... xn)) pateikia rezultatą (f(x1), f(x2), … f(xn))

(f yra funkcija, o xi – bet kurie skaičiai).
Pavyzdžiui, jei q(x) = -x, tada (M q (1, 2, 3, 4)) pateikia rezultatą (-1, -2, -3, -4).

Kompiuteris gali vartoti bet kurias kitas funkcijas.
Pavyzdžiui, imkime t(x) = 3x + 2, tada (M t (1, 2, 3)) pateiks rezultatą (5, 8, 11).

Tarkime: t(x) = 3x + 2 ir q(x) = -x.

Kokia reikšmę gausime, atlikę šią operaciją:

(R + (R + (M t (0, 2, 4))) (R + (M q (M t (3, 5)))))

A. 7 B. 0 C. -7 D. -4

 

Paaiškinimas

Šis uždavinys paaiškina idėją, kaip funkcija taikoma reikšmių aibei ir kaip atliekant operacijas mažinamas reikšmių skaičius, kol gaunamas rezultatas. Funkcijų įdėjimas viena į kitą ir jų reikšmių aibės mažinimas – pagrindiniai funkcinio programavimo konceptai. Pavyzdžiui, siekiate rasti aukščiausią užduočių įvertinimą. Vienas iš būdų tai formalizuoti yra mažinti kiekvienos eilutės reikšmes (suskaičiuojant užduočių įvertinimų sumas) ir tuomet taikyti maksimumo funkciją. Šios dvi  funkcijos taikomos viena po kitos ir taip gaunamas reikiamas rezultatas.


Reikšminiai žodžiai: funkcija, mažinimas, informacijos apdorojimas.

Atsakymas

Tarpinių skaičiavimų rezultatai apjungiami ir gaunamas galutinis funkcijų taikymo rezultatas (paryškintoji dalis reikalinga kitai eilutei gauti):
(R + (R + (M t (0, 2, 4))) (R + (M q (M t (3, 5)))))
⇒ (R + (R + (2, 8, 14)) (R + (M q (11, 17))))
⇒(R + 24 (R + (-11, -17)))
(R + 24 -28)
⇒ -4