Práctica 2 (LyC Verano)

De Cuba-Wiki

Plantilla:Back

Ejercicio 1

Sean las funciones totales Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \phi: I\!\!N^2 \to I\!\!N} y Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \psi: I\!\!N \to I\!\!N} . Sabiendo que la suma es una función recursiva, analizar si las siguientes definiciones de Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f\,\!} son definiciones por recursión primitiva a partir de Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \phi\,\!} y Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \psi\,\!} .

Para cada una de las definiciones que representen una recursión primitiva, especificar las funciones asociadas al esquema de recursión primitiva a partir del cual se obtiene Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f\,\!} .

Ítem a

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} f(x, 0) & = 17 \\ f(x, y + 1) & = f(0, \phi(x, y)) \end{cases} }

Solución

La función no es recursiva, alcanza con ver que si Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \phi(x, y) \ge y)\,\!} , nunca se puede descender al caso base.

Ítem b

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} f(x, 0) & = \phi(x, x) \\ f(x, y + 1) & = f(\phi(x, y), y) \end{cases} }

Solución

Definamos Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f(x,y) = f'(x,y,y)\,\!} , Donde f' es

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} f'(x,y,0) & = \phi(x,x) \\ f'(x,y,i+1) & = \phi(f'(x,y,i), y-i) = g(i, f'(x,y,i), x, y) \end{cases} }

Entonces f' es PR -> f es PR

Ítem c

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} f(x, 0) & = \psi(x) \\ f(x, y + 1) & = f(x, y) + \phi(y, x) \end{cases} }

Solución

Se define:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle g(a, b, c) = b + \phi(a,c)\,\!}

Que es p. r. por ser suma y composición. Luego,

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f(x, y + 1) = f(x, y) + \phi(y, x) = g(y, f(x, y), x)\,\! }

Que es la forma buscada.

Ítem d

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} f(x, 0) & = \phi(0, x) \\ f(x, y + 1) & = \phi(f(x, y), y + 1) \end{cases} }

Solución

Se define:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle g(t,v,x) = \phi(v, t + 1)\,\!}

Que es p. r. por ser suma y composición. Luego,

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f(x, y + 1) = \phi(f(x, y), y + 1) = g(y, f(x, y),x)\,\!}

Que es la forma buscada.

Ejercicio 2

Probar que las siguientes funciones son primitivas recursivas, mostrando que pueden obtenerse a partir de las funciones iniciales o a través de composición o recursión primitiva.

Ítem a

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \mbox{max}(x, y) = \begin{cases} x & \mbox{si } x \ge y \\ y & \mbox{si } x < y \\ \end{cases} }

Solución

Definimos primero el decremento:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} \mbox{decr}(0) & = 0 \\ \mbox{decr}(t + 1) & = t \\ \end{cases} }

Luego,

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} \mbox{max}(0, y) & = y \\ \mbox{max}(t + 1, y) & = 1 + \mbox{max}(t, \mbox{decr}(y)) \\ \end{cases} }

Ítem b

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \mbox{min}(x, y) = \begin{cases} x & \mbox{si } x \le y \\ y & \mbox{si } x > y \\ \end{cases} }

Solución

Definimos la resta acotada:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} x \dot - 0 & = x \\ x \dot - (t + 1) & = \mbox{decr}(x) \dot - t \\ \end{cases} }

Luego,

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \mbox{min}(x, y) = (x + y) \dot - \mbox{max}(x, y)}

Ítem c

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \mbox{par}(x) = \begin{cases} 1 & \mbox{si } x \mbox{ es par} \\ 0 & \mbox{si } x \mbox{ es impar} \\ \end{cases} }

Solución

Definimos la negación:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} \alpha(0) & = 1 \\ \alpha(t + 1) & = 0 \\ \end{cases} }

Luego,

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} \mbox{par}(0) = 1 \\ \mbox{par}(t + 1) = \alpha(\mbox{par}(t)) \\ \end{cases} }


Ítem d

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \mbox{hf}(x) = \left \lfloor \frac{x}{2} \right \rfloor}

Solución

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} \mbox{hf}(0) & = 0 \\ \mbox{hf}(t + 1) & = \mbox{hf}(t) + \mbox{par}(t) \\ \end{cases} }

Ítem e

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \mbox{sqrt}(x) = \left \lfloor \sqrt{x} \right \rfloor}

Solución

Definimos producto:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} x \cdot 0 & = 0 \\ x \cdot (t + 1) & = x + (x \cdot t) \\ \end{cases} }

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \mbox{sqrt}(x) = \sum_{i=1}^x ((i \cdot i) > x)}

Ítem f

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \mbox{psq}(x) = \begin{cases} 1 & \mbox{si } x \mbox{ es un cuadrado perfecto} \\ 0 & \mbox{si } \mbox{en otro caso} \\ \end{cases} }

Solución

Definimos igualdad,

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle (x = y) = \alpha((x > y) + (y > x))\,\!}

Luego,

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \mbox{psq}(x) = (\mbox{sqrt}(x) \cdot \mbox{sqrt}(x) = x)}

Ejercicio 3

Sean Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \phi: I\!\!N^2 \to I\!\!N} y Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \psi: I\!\!N \to I\!\!N} funciones primitivas recursivas. Mostrar que las siguientes funciones también son primitivas recursivas.

Ítem a

La función Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f_1: I\!\!N \to I\!\!N} definida como:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} f_1(0) & = 0 \\ f_1(1) & = 1 \\ f_1(2) & = 2^2 \\ & \vdots \\ f_1(n) & = \underbrace{n^{n^{\cdot^{\cdot^{\cdot^{n}}}}}}_{n \mbox{veces}} \\ \end{cases} }

Solución

Definimos exponenciación:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} x^0 & = 1 \\ x^{t + 1} & = x \cdot x^t \\ \end{cases} }

Luego definimos una función auxiliar:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} \mbox{supexp}(a, b, 0) & = a \\ \mbox{supexp}(a, b, t + 1) & = \mbox{supexp}(a, b, t)^b \\ \end{cases} }

Entonces:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f_1(n) = \mbox{superexp}(n, n, n)\,\!}

Ítem b

La función Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f_2: I\!\!N \to I\!\!N} definida como:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} f_2(0) & = \psi(0) \\ f_2(1) & = \psi(\psi(1) + 1) + 1 \\ & \vdots \\ f_2(x) & = \underbrace{\psi(\psi(\dots(\psi}_{x+1 \mbox{veces}}(x) + 1) \dots) + 1) + 1 \\ \end{cases} }

Solución

Definimos una función auxiliar:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \lambda(x, n) = \underbrace{\psi(\psi(\dots(\psi}_{n+1 \mbox{veces}}(x) + 1) \dots) + 1)}

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} \lambda(x, 0) & = \psi(x) \\ \lambda(x, t + 1) & = \psi(\lambda(x, t) + 1) \\ \end{cases} }

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f_2(x) = \begin{cases} \psi(x) & \mbox{si } x = 0 \\ \lambda(x, x) + 1 & \mbox{sino} \\ \end{cases} }

Ítem c

La función Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f_3: I\!\!N^2 \to I\!\!N} definida como:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} f_2(x, 0) & = \phi(x, 0) \\ f_2(x, 1) & = \phi(\phi(x, 1), 0) \\ & \vdots \\ f_2(x, y) & = \underbrace{\phi(\phi(\dots(\phi(\phi}_{y+1 \mbox{veces}}(x ,y), y - 1 \dots), 1), 0) \\ \end{cases} }

Solución

Definimos una función auxiliar:

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \begin{cases} \sigma(x, y, 0) & = \phi(x, y) \\ \sigma(x, y, t + 1) & = \phi(\sigma(x, y, t), y \dot - (t + 1)) \\ \end{cases} }

Luego,

Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f_2(x) = \sigma(x, y, y)}

Ejercicio 4

Usar las definiciones por sumas y/o productos acotados para establecer la recursividad primitiva de cada una de las siguientes funciones. Suponer que es una función primitiva recursiva.

Ítem a

Solución

Ítem b

Solución

Ítem c

Solución

Ejercicio 5

Probar que las funciones dadas a continuación son primitivas recursivas. Pueden usarse como funciones auxiliares las dadas en las clases teóricas y prácticas o las ya calculadas anteriormente.

Ítem a

Solución

Ítem b

Solución

Ítem c

el n-ésimo dígito en la representación binaria de , contando desde la derecha y comenzado con 0.

Así, , , , , , etc.

Solución

Ítem d

el número de unos en la representación binaria de .

Solución

Ítem e

es la cantidad de números primos entre y .

Solución


Ejercicio 6

Mostrar que la función es primitiva recursiva.

Solución

Ejercicio 7

Mostrar que la función definida como

cantidad de apariciones de en la lista

para todo es primitiva recursiva.

Solución

Ejercicio 8

Para , se define , donde la secuencia es una permutación de . Mostrar que es primitiva recursiva.

Solución

Sabemos que podemos obtener una secuencia ordenada con una serie de permutaciones de a dos elementos que están fuera de orden el uno con respecto al otro, como lo hace Bubble Sort. (Habría que probar esto?)

Entonces, comparamos el paso y el paso , observando la secuencia como un número de Gödel:

En el paso tenemos: , donde se observan los dos elementos que se van a permutar y la constante que representa al resto de la secuencia que no se modifica.

En el paso queda: .

Además, sabemos que , y que (porque están fuera de orden), entonces:

Luego,

Y por lo tanto, si este procedimiento nos permite llegar de cualquier secuencia a una secuencia ordenada, tenemos que el número de Gödel de la secuencia ordenada es el mayor de los números de todas las permutaciones.

Entonces, definimos una función que busca el mayor elemento de la secuencia:

Definimos una cota:

Y finalmente, buscamos la máxima permutación:

Ejercicio 9

Mostrar que la función de Fibonacci

es primitiva recursiva.

Solución

Definimos una función auxiliar:

Entonces:

Ejercicio 10

Sea una función primitiva recursiva. Mostrar que la función definida como

para todo es primitiva recursiva.

Solución

Ejercicio Extra 1

Probar que las funciones y del Ejercicio 8 de la práctica de funciones computables son primitivas recursivas, siempre que g, s y t lo sean.

Solución

Primer problema:

Segundo problema. Primero definimos una función auxiliar:

Luego,