Изменения

Перейти к: навигация, поиск

Рекурсивные функции

410 байт добавлено, 01:33, 19 января 2013
Арифметические операции на примитивно рекурсивных функциях
<tex> lower(x,y) = mul(le(x,y),le(I(x),y)) </tex>
 
==== IF ====
<tex> if(0,x,y) = y </tex>
 
<tex> if(c+1,x,y) = h(c,x,y,if(c,x,y)) </tex> , где <tex> h(c,x,y,d) = x </tex>
==== Деление ====
<tex> divide(x,y) = \frac{x}{y} </tex>, если <tex> y > 0 </tex>, иначе . Если же <tex> divide(x,y) = 0 </tex> divmax(0,y) = 0divmaxто <tex> divide(x+1,y0) = h(y,x,divmax(x)), где </tex> h(yи все связанные с делением функции равны каким то ,xне интересными для нас,z) = if (x+1 - divmax(x) == y) then x+1 else y числами.
add(mul(eq(sub(IСначала определим <tex> divmax(x+1),zy),P_</tex> {{1,1---}}(функция равна максимальному числу меньшему <tex> x </tex> и которое нацело делится на <tex> y)),I(x)),</tex>.
<tex> divmax(0,y) =\textbf 0^{1} </tex>
Сначала выразим <tex> moddivmax(x+1,y) = h(x,y,divmax(x)) </tex> - модуль от деления., где <tex> counth(x,y,z) =if(eq(sub(I(x+1),z),y),x,z) </tex>
Анонимный участник

Навигация