Задатак 1.

Израчунати   вредност  

f

2

(

2

,

2

)

  аритметичке   функције 

f

2

(

x , y

)=

x

y

(

f

2

(

x ,

0

)=

0

)

уколико   претпоставимо   да   је   дата   аритметичка   функција  

f

1

(

x , y

)=

x

+

y

  (при 

рачунању вредности користити рекурзиван запис за функцију 

f

2

(

x , y

)

).

Решење:

За решавање овог задатка користићемо рекурзију (основну, стандардну) као 
врсту рекурзивне функције. Да видимо шта каже дефиниција рекурзије:

Рекурзија. 

Нека   су   дате   функције

 

g

=

g

(

x

1

,x

2

,

...

, x

n

)

:

N

n

N ,

 

h

=

h

(

x

1

, x

2

,

...

, x

n

, y , z

)

:

N

n

+

2

N

.

 

Тада (стандардна) рекурзија функција g и h јесте функција 

f

=

rec

(

g ,h

)

:

N

n

+

1

N

дефинисана са 

f

(

x

1

,

...

, x

n

, y

)=

{

g

(

x

1

,

...

, x

n

)

:

y

=

0

,

h

(

x

1

,

...

,x

n

, y

1

, f

(

x

1

,

...

, x

n

, y

1

))

:

y

0.

У   нашем   примеру   можемо   лако   видети   да   је  n  =   1,   јер   имамо   само   једну 
променљиву  x.   Одавде   закључујемо   да   је   функција  g  функција   облика 

g

=

g

(

x

)

:

N

1

N ,

 а функција h функција облика 

h

=

h

(

x , y

1

, f

(

x , y

1

))

:

N

3

N

.

 

Разматрамо 2 случаја. Први случај је када је  y  = 0, где тражимо функцију  g, а 

други случај је када је 

y

0

, где тражимо функцију h. Функцију f

2

(x,y) можемо 

компактније записати као:

f

2

(

x , y

)=

{

0:

y

=

0

,

x

y

:

y

0.

На располагању нам стоје 3 основне полазне функције, а то су: нула функција 
(N(x)   =   0),   функција   следбеник   (S(x)   =  x  +   1)   и   функција   пројекције   (

U

i

n

(

x

1

, x

2

,

...

, x

i

,

...

,x

n

)=

x

i

).   Помоћу   ових   основних   функција,   ми   ћемо   моћи   да 

полазну   функцију   сведемо   на   одговарајући   облик   који   ће   нам   помоћи   да 
нађемо функције g и h.

y

=

0:

g

(

x

)=

f

2

(

x , y

)=

f

2

(

x ,

0

)=

x

0

=

0

=

N

(

x

)

g

=

N

y

0:

f

2

(

x , y

)=

x

y

Пошто функцију h треба да сведемо на облик који је горе наведен, видимо да 
нам треба y – 1. То можемо „направити“ тако што ћемо следећи облик функције 
f

2

(x,y) написати: 

f

2

(

x , y

)=

x

(

y

1

)

+

x

.

Пошто имамо на располагању и функцију  

f

1

(

x , y

)=

x

+

y

, која је дата у тексту 

задатка, ми нашу функцију f

2

(x,y) можемо написати:

f

2

(

x , y

)=

f

1

(

x

⋅(

y

1

)

, x

)=

f

1

(

f

2

(

x , y

1

)

,x

)

.

Да бисмо одредили функцију h, која нам треба, ми видимо да нам у претходној 
формули недостаје y – 1. Овде сада може да нам послужи функција пројекције, и 
претходну формулу можемо да сведемо на облик:

f

1

(

f

2

(

x , y

1

)

, x

)=

f

1

(

U

3

3

(

x , y

1

, f

2

(

x , y

1

))

,U

1

3

(

x , y

1

, f

2

(

x , y

1

)))=

=

f

1

(

U

3

3

,U

1

3

)(

x , y

1

, f

2

(

x , y

1

))

h

=

f

1

(

U

3

3

,U

1

3

)

.

Одавде је очигледно h. Можемо приметити да се израз y – 1 нигде не користи, 
али   нам   је   био   потребан   да   бисмо   нашли   функцију  h,   уз   помоћ   функције 
пројекције. Коначан израз за рекурзију (основну) биће:

f

2

=

rec

(

N , f

1

(

U

3

3

,U

1

3

))

.

background image

Želiš da pročitaš svih 5 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti