Números naturales y recursividad

Anuncio
Números naturales y recursividad
Sonia M. Sabogal P.
Rafael F. Isaacs G.
*
Fecha: 8 de marzo de 2005
Números naturales
Se sabe que los números naturales constituyen la estructura básica de la Matemática; ası́ el
camino usual que se recorre es, partiendo de los naturales (N) pasar a los enteros (Z), de
estos a los racionales (Q), luego a los reales (R) y finalmente a los complejos (C); el paso de
un conjunto numérico a otro se da por la necesidad de ampliar cada conjunto a otro (que
lo contenga) y en el cual se puedan resolver ciertos problemas que no tienen solución en el
conjunto dado.
Una aproximación intuitiva de los números naturales asegura que “son los números que nos
sirven para contar” (0,1,2,3,4,...). A nosotros nos interesa dos propiedades: que empiezan
en 0 y que de uno en uno los podemos recorrer todos. Estas propiedades de los números
naturales se explotan en el sistema universalmente aceptado de axiomas propuesto por el
matemático italiano Giusseppe Peano (1858-1932), que usan solo tres términos técnicos:
“Número natural”
“Primer número natural”
La función “el siguiente de”.
En los axiomas de Peano se establece la “esencia”de los números naturales que corresponde
a la idea intuitiva que tenemos de ellos: “empiezan en algún momento”(existe el primero) y
“van en fila”(uno enseguida de otro). Los axiomas son 5:
N1 . El 1 es un número natural (Aquı́ puede ser 1 o 0, o cualquier otro “sı́mbolo”, en realidad
lo que importa es que existe al menos un natural).
N2 . El siguiente de todo número natural es también un número natural.
N3 . Si los siguientes de dos números naturales son iguales, entonces los números son iguales.
N4 . No existe un número natural cuyo siguiente es 1 (aquı́ nuevamente puede ser 1 o 0, o
cualquier otro “sı́mbolo”lo que importa es que existe un “primer elemento”).
N5 . Si S es una colección de números naturales que cumple:
*
UIS
1
Figura 1: Giussepe Peano
(i) 0 ∈ S
(ii) Cada vez que un natural está en S, también el siguiente de él está en S.
Entonces S es el conjunto de todos los naturales.
Notas
1 . El conjunto de los número naturales se simboliza N, ası́ la expresión k ∈ N significa que
k es un número natural.
2 . Si k ∈ N, el “siguiente” o “sucesor” de k se simboliza k + 1.
3 . Como convención entenderemos los números naturales empezando por 0, ası́ N = {0, 1, 2, 3, . . .}.
Cuando se empiece por 1 hablaremos de “enteros positivos” que se notarán Z+ =
{1, 2, 3, . . .}
De los 5 axiomas de Peano queremos destacar el axioma N5. llamado el Principio de inducción matemática (Algunas veces el conjunto N se define como el conjunto “más pequeño”
de R que satisface las condiciones (i) y (ii) de N5). El principio de Inducción Matemática
constituye la base de las demostraciones que trabajaremos en la siguiente sección.
Ejercicios
1. Si N es el conjunto de los naturales, Z el conjunto de los enteros , Q el de los números racionales, I el conjunto de irracionales y R son los reales,cuál de las siguientes
proposiciones NO es cierta ?
a) Z contiene a N
b) Q contiene a N y a Z
c) I contiene a N
d) R contiene a N
2
e) R contiene a I.
f ) R contiene a Q.
2. No existe un número natural mayor que todos los demás. Por qué?
3. ¿Cuál es el menor subconjunto A de los reales que cumple:
i) 0 ∈ A
ii) Si x ∈ A entonces (x + 2) ∈ A
4. ¿Cuál es el menor subconjunto A de los reales que cumple:
i) 0 ∈ A
ii) Si x ∈ A entonces (x + 2) ∈ A y (x − 2) ∈ A
Demostraciones por inducción matemática
.
Es posible que el estudiante alguna vez se haya encontrado con afirmaciones como las siguientes:
Para todo natural n, n2 + n es par.
Si r ∈ R, r > 1 entonces 1 + r + r2 + ... + rn = (1 − rn+1 )/(1 − r) para todo n natural.
2n > n, para todo natural n.
Para todo natural n se tiene que 1 + 2 + 3 + ... + n = n(n + 1)/2.
Las afirmaciones anteriores tienen en común la expresión: “para todo natural ”; en todas se
afirma que algo es válido para todo número natural, es decir todos ellos son de la forma:
“p(n), para todo n ∈ N”, donde p(n) es una proposición relativa al natural n. Es fácil verificar
que cada afirmación es válida por ejemplo para 1, 2, 3, u otros valores particulares, pero cómo
probar que en efecto p(n) es válida para todo número natural?
La idea es la siguiente: Si llamamos S al conjunto de números naturales que hacen cierta
la proposición p(n), o sea S = {n ∈ N : p(n) es verdadera}, entonces bastarı́a probar que
S = N; para ésto, usamos el principio de inducción matemática, es decir debemos probar:
i) Que 0 ∈ S, o lo que es lo mismo que p(1) es verdadera.
ii) Que si k ∈ S entonces k + 1 ∈ S, es decir que asumimos que para algún k, p(k) es verdadera (Hipótesis de Inducción) entonces se debe demostrar que p(k + 1) es verdadera.
Al demostrar (i) y (ii), por el P.I.M. se concluye que S = N, es decir, que p(n) es verdadera
para todo n.
3
Ejemplo 1. Un ejemplo muy interesante son las Torres de Hanoi. Tenemos n discos con
radios crecientes y 3 estacas verticales (A, B y C) en donde se incrustan los discos. Los
discos están inicialmente por orden de tamaño en la estaca A. Se pueden mover un disco de
una estaca a cualquier otra desde que ningún disco quede encima de uno más pequeño.
Notemos Tn el número de pasos requeridos para mover n discos y aseguramos que Tn = 2n −1
para n ∈ N. Como T0 = 0 = 20 − 1, el resultado es cierto para n = 0.
Sea k > 0 y supongamos que se tienen k discos. Ahora la única manera de mover el disco
mayor es mover los otros k − 1 discos a C (en Tk−1 movimientos). Ponemos el disco mayor en
B (en 1 movimiento) y movemos los k − 1 discos menores encima de él (en Tk−1 movimientos
de nuevo). Asumamos que Tk−1 = 2k−1 − 1. Tenemos que Tk = 2Tk−1 + 1 = 2k − 1. Por tanto
el resultado se ha probado por el principı́o de inducción.
Ejercicios
1. Demostrar por inducción sobre n:
a) 1 + 2 + ... + n = n(n + 1)/2
b) a + (a + d) + (a + 2d) + ... + (a + (n − 1)d) = n[2a + (n − 1)d]/2 (suma de una
progresión aritmética).
c) 1 + x + x2 + x3 + ... + xn = (1 − xn+1 )/(1 − x) (suma de una progresión geométrica,
x no es 1).
d) 1 + 22 + 32 + ... + n2 = n(n + 1)(2n + 1)/6
e) 1 − 4 + 9 − 16 + ... + (−1)n+1 n2 = (−1)n+1 n(n + 1)/2
f ) 1 × 2 + 3 × 4 + 5 × 6 + .... + (2n − 1)(2n) = n(n + 1)(4n − 1)/3
g) Si r > 1 entonces rn > 1.
h) 1 + 23 + 33 + ... + n3 = [n2(n + 1)2]/4
i) 1 + 2n < 3n con n > 1.
j) n < 2n con n > 1.
2. Si b1 , b2 , b3 , . . . , bn y r son números reales demostrar por inducción que:
a) r(b1 + b2 + b3 + ... + bn ) = rb1 + rb2 + . . . + rbn
b) |b1 + b2 + . . . + bn | ≤ |b1 | + |b2 | + . . . + |bn |.
3. Probar que n rectas en el plano, tales que dos cualesquiera de ellas no son paralelas
y tres cualesquiera de ellas no tienen un punto en común, determinan (n2 + n + 2)/2
regiones diferentes.
4. Sea x > 0 . Probar que para todo entero n ≥ 3 se tiene que
(1 + x)n > 1 + nx + nx2
4
5. Cuál es el error en la siguiente demostración ?
Teorema:Todos los caballos tienen el mismo color.
Demostración: Sea Pn la proposición “Todos los caballos de un conjunto de n caballos son del mismo color”. a) P1 es claramente verdadera. b) Supongamos que Pk
es verdadera. Veamos que Pk+1 también es verdadera. Sean c1 , c2 , c3 , ..., ck+1 los k + 1
caballos en un conjunto de k + 1 caballos. Consideremos el conjunto de k caballos
{c1 , c2 , c3 , ..., ck } . Por hipótesis de inducción todos estos caballos son del mismo color. En el conjunto anterior reemplacemos ck por ck+1 . Luego el conjunto resultante
{c1 , c2 , c3 , ..., ck−1 , ck+1 } de k caballos, por hipótesis de inducción, todos son del mismo
color; como c1 y ck al igual que ck+1 y c1 son de igual color, todos los k + 1 caballos
son del mismo color. Luego Pk+1 es verdadera y por el principio de inducción se sigue
que todos los caballos son del mismo color.
6. Demostrar que si un conjunto S tiene n elementos entonces S tiene 2n subconjuntos.
7. Sin hacer las multiplicaciones de todos los términos muestre que:
a) 10! = 6!7!
b) 16! = 14!5!2!
c) 10! = 7!5!3!
d) 9! = 7!3!3!2!
Otras formas del principio de Inducción
A veces para demostrar una proposición “Pn ” necesitaremos que se cumpla no solamente en
un primer elemento, sino en varios, digamos por ejemplo P0 , . . . , Pr , y además para hacer
el paso inductivo, para demostrar Pk+1 es posible que requiramos que además de cumplirse
en el anterior se cumpla en todos los anteriores es decir que se tenga P0 , . . . , Pk . Este es el
principio de inducción completa. Antes de formularlo presentemos un ejemplo del muy
usado algoritmo de la división, para enteros positivos. Éste nos garantiza que dado un dividendo (por ejemplo 10) y un divisor (por ejemplo 3) existe un cociente (3) y un residuo (1).
Teorema 1. Algoritmo de la división. Sea b un número entero positivo fijo. Entonces
que para todo natural n existen q y r naturales tales que n = bq + r y 0 ≤ r < b .
Demostración. Haremos inducción sobre n entonces suponemos fijo b ≥ 1. Base: Si n < b el
cociente es 0 y el residuo es n y se cumple la proposición.
Paso inductivo: Sea n ≥ b y supongamos que tenemos el resultado cuando el dividendo es
menor que n. En especial se cumple para n − b (pues (n − b) ∈ N), por tanto existen q1 y r1
naturales tales que n − b = bq1 + r1 y 0 ≤ r1 < b. De esto se deduce que n = bq1 + b + r1 es
decir, n = b(q1 + 1) + r1 con 0 ≤ r1 < b o sea que la proposición se cumple para n.
Ahora sı́ formalicemos esta versión del principio de inducción, que es equivalente.
Teorema 2. Principio de Inducción Completa Si A ⊆ N es tal que:
5
i) 0 ∈ A
ii) Si {0, . . . , k − 1} ⊆ A se deduce que k ∈ A
entonces A = N
Otro principio equivalente al de inducción es el siguiente:
Principio del Buen Orden Todo subconjunto no vacı́o de números naturales tiene primer
elemento.
Ejercicios
1. Demostrar que en el algoritmo de la división el cociente y el residuo son únicos.
2. Utilizando el principio del buen orden, demuestre el algoritmo de la división (Ayuda:
considere el conjunto {bq − a ∈ N : q ∈ N} demuestre que es no vacı́o y haga r su
primer elemento).
3. Demostrar que fijo b un entero mayor que 1, cualquier natural se puede expresar en
base b, es decir, para todo a ∈ N existen a0 , . . . ak (que son llamados los dı́gitos de a),
tales que
a = a0 + a1 b + . . . + ak bk
y además 0 ≤ ai < b para cada i = 1, . . . k
Definiciones Recursivas
.
Otra aplicación importante del principio de inducción matemática la encontramos en las
definiciones recursivas. Un concepto se dice definido recursivamente, si se define explı́citamente para el caso n = 1 (o n = 0, o en general para un “primer caso”, o “primeros casos”)
y se da una regla (o lista de reglas) que lo definen para el caso n-ésimo, en términos del
caso anterior )o casos anteriores). Por ejemplo el concepto de “potenciación”se puede definir
recursivamente ası́: “Para a ∈ R definimos: a1 =: a y an =: an−1 a, para todo n ≥ 2”; de
esta manera tendrı́amos por ejemplo que a2 = a2−1 a = a1 a = aa, a3 = a3−1 a = a2 a = aaa y
ası́ sucesivamente.
Muchas sucesiones de números se pueden definir recursivamente: Sea por ejemplo (Sn )n∈N la
sucesión definida por: S1 =: 1 y Sn+1 = 2Sn + 1
entonces los 4 primeros términos de esta sucesión serán:
1, 3, 7, 15
En realidad, podemos afirmar que toda definición recursiva al fin y al cabo lo que siempre
define es una sucesión en un determinado conjunto X, es decir una función f del dominio
N y codominio X; ası́ por ejemplo las potencias de una base fija a se pueden obtener con la
función f : N −→ R definida por f (1) =: a y f (n) =: f (n − 1)a para n ≥ 2.
6
Que una sucesión definida recursivamente quede bien definida se debe al principio de inducción.
La importancia de las definiciones recursivas radica en que se da un método constructivo
para encontrar los términos de la sucesión. Es ası́, que se puede asegurar que los programas
de cómputo en general son aplicaciones de definiciones recursivas. Como se ratificará más
adelante, casi todas las cosas que hacemos
en matemáticas
P
Q tiene que ver con definiciones
recursivas, por ejemplo la sumatoria
y productoria , aunque se pueden y se deben
entender de manera intuitiva, para programarse, encontrar y demostrar sus propiedades,
deben ser definidos y tratados recursivamente.
Algunas veces en las definiciones recursivas el elemento ak+1 no se define solamente en términos de ak sino que se usan además otros anteriores. Por ejemplo en la muy famosa sucesión
de Fibonacci el término siguiente se obtiene sumando los dos anteriores y se empieza por
0, 1 ası́:
0, 1, 2, 3, 5, 8, 13, 21, 34, . . .
La definición recursiva de fn es ası́:
i) f0 = 0;f1 = 1
ii) fn+1 = fn + fn−1
También se puede definir sucesiones recursivas con varias variables. Por ejemplo, para la
sucesión de Fibonacci podemos definir an y bn ası́:
f1 = 1; g1 = 0
fn+1 = fn + gn ; gn+1 = fn
Nótese que en esta definición recursiva es realmente un algoritmo o programa para calcular
paso a paso los términos de la sucesión.
Ejercicios
1. El factorial de un número natural es el producto de él por todos sus anteriores hasta 1.
Por ejemplo, 5! = 5x4x3x2 = 120 . Para 0, se considera 0! = 1. Definir recursivamente
factorial de n.
2. Demuestre utilizando la definición recursiva e inducción:
a) (a.b)n = an bn
b) an am = an+m
c) 2n < n! para n > 3.
3. Sea Sn una sucesión definida recursivamente ası́:
i) Base: S0 = 1
ii) Paso recursivo: Sn+1 = Sn + 21 , para todo natural n > 0.
Encuentre el valor de S100 . Muestre una fórmula no recursiva para hallar Sn .
7
4. Se define Sn recursivamente ası́:
S1 = 2
Sn+1 = Sn + n + 1.
Demostrar que Sn = (n2 + n + 2)/2
5. Si se define an recursivamente ası́:
a0 = 0; b0 = 1
an+1 = an + bn ; bn+1 = bn
encuentre el valor de a976 .
6. Suponiendo conocida la sucesión an defina recursivamente:
P
a) Sn = a0 + a1 + . . . + an = ni=0 ai
Q
b) Pn = a0 .a1 . . . . .an = ni=0 ai
√
√
7. Sea α = 1+2 5 y β = 1−2 5 ; demuestre por inducción que el n-ésimo término de la
sucesión de Fibonacci cumple:
1
fn = √ (αn − β n )
5
1 1
8. Sea A =
, conjeture y demuestre por inducción una fórmula para An en
1 0
términos de la sucesión de Fibonacci
9. Se define Sn recursivamente ası́:
S0 = 1
Sn+1 = xSn + 1.
Demostrar que Sn = 1 + x + x2 + x3 + ... + xn
10. A continuación se define recursivamente la sucesión an de diferentes maneras:
a) a0 = 0; b0 = 1
an+1 = an + bn ; bn+1 = xbn
b) a0 = 0; b0 = 0
an+1 = an + bn ; bn+1 = x + bn
c) a0 = 0; b0 = 1
an+1 = an + bn ; bn+1 = bn + 1
d ) a0 = 1; b0 = 1
an+1 = an bn ; bn+1 = bn + 1
8
e) a0 = 0 : b0 = 0
an+1 = an + 2bn + 1; bn+1 = bn + 1
f ) a0 = 0; b0 = 1; c0 = 1
an+1 = an + bn ; bn+1 =
bn
; zn+1
cn
= zn + 1
enseguida están, en otro orden, las definiciones no recursivas de an , halle las correspondientes:
a) an = n!
b) an = n2
c) an = n(n − 1)/2
P
d ) an = ni=0 xi
P
i
e) an = ni=0 xi!
f ) an = xn(n − 1)/2
Aritmética recursiva
El poder de la recursividad está basado en que sabiendo contar, es decir sabiendo sumar 1,
podemos realizar los algoritmos más comunes de la aritmética: desde decidir de dos números
cuál es mayor, sumar, restar, multiplicar, hallar cociente y residuo, máximo común divisor,
hasta decidir si un número es primo.
Ejemplo 2. La siguiente es la definición recursiva de suma de dos numeros naturales, a
partir de sumar 1.
a0 = a
an+1 = an + 1
entonces an = a + n.
Nótese que aplicamos la lógica de sumar con los dedos de la mano. Realmente tenemos una
definición recursiva de la suma de dos números naturales, basada únicamente en saber sumar
1. Utilizando condicionales podemos definir recursivamente el producto solamente sumando
1, pero como ya sabemos sumar dos números naturales cualesquiera entonces, es sensato
utilizar tal suma (como si fuera una subrutina).
Ejemplo 3. Definición recursiva de producto de dos números naturales a partir de la suma
a0 = 0
an+1 = an + c
entonces an = cn.
Estas dos definiciones las podemos traducir en algoritmos.
Ejemplo 4. Algoritmo SUMA(a,b)
Si b=0 entonces SUMA(a,b)=a
si b6=0 entonces SUMA(a,b)=SUMA(a,b-1)+1
FIN
9
Ejemplo 5. Algoritmo PRODUCTO(a,b)
Si b=0 entonces PRODUCTO(a,b)=0
Si b6=0 PRODUCTO(a,b)=PRODUCTO(a,b-1)+a
FIN
Ejemplo 6. Algoritmo COCIENTE(a,b) Si b>a entonces COCIENTE(a,b)=0
Si b≤a COCIENTE(a,b)=COCIENTE(a-b,b)+1
FIN
Ejemplo 7. El algoritmo para el Cociente lo podemos traducir como definición recursiva
a0 = a; c0 = 0
Si an < b entonces cn+1 = cn
Si an ≥ bn entonces an+1 = an − b; cn+1 = cn + 1
el cociente al dividir a entre b se obtiene como cn cuando an < b
Definición 1. Dados dos números naturales a y b se dice que a divide a b si existe un
natural k tal que b = ak. Se nota a|b.
Definición 2. El máximo común divisor de dos naturales a y b es un número c tal que
i) c|a y c|b
ii) Si n|a y n|b entonces n|c.
se nota c = M CD(a, b)
En primaria se aprende a hallar el máximo común divisor de dos números, generalmente
descomponiendo los números en sus factores primos, este algoritmo es práctico para números muy pequeños, para números grandes descomponer en factores primos es un problema
que puede requerir mucho tiempo y por lo tanto este algoritmo no es práctico. Existe una
algoritmo muy antiguo llamado el algoritmo de Euclides que emplea sucesiones sucesivas
(averiguar) y que se basa en el siguiente hecho:
Proposición 1. Siendo a > b se tiene que M CD(a, b) = M CD(a − b, b).
Demostración. Sea c = M CD(a, b) y d = M CD(a − b, b). Como c|a y c|b entonces c|a − b
por tanto c es un divisor común de a − b y b y tenemos que c|d. Similarmente se ve que d|c.
Entonces c|d y d|c por tanto c = d
Ejercicios
1. Expresar algoritmos (en seudocódigo o en su lenguaje preferido) para que solamente
sabiendo sumar 1 y distinguiendo cuándo dos números son iguales:
a) Determinar cuál de dos números es mayor (si no son iguales)
b) Hallar la diferencia entre dos números.
c) Duplicar un número.
10
d) Hallar el residuo y el cociente al dividir entre dos.
2. Expresar algoritmos (en seudocódigo o en su lenguaje preferido) para que solamente
sabiendo sumar y restar dos naturales y decidir cuál es el mayor:
a) Halle el residuo al dividir a entre b.
b) Decidir si a divide a b.
c) Elevar al cuadrado un número.
d) Hallar el máximo común divisor entre dos números.
3. Expresar algoritmos (en seudocódigo o en su lenguaje preferido) para que solamente
sabiendo sumar y restar y multiplicar dos naturales y decidir cuál es el mayor:
a) Decida si un número es primo.
b) Expresar un número por sus factores primos.
c) Calcular los coeficientes binomiales.
d) Hallar el máximo común divisor entre dos números.
e) Expresar a en base b.
4. Sea Sn una sucesión definida recursivamente ası́:
i) Base: S0 = 1
ii) Paso recursivo: Sn+1 = Sn + 12 , para todo natural n > 0.
Encuentre el valor de S100 . Muestre una fórmula no recursiva para hallar Sn .
5. Multiplicación campesina: Para multiplicar dos números (de manera relativamente
ágil) no es necesario saber las tablas de multiplicar, basta con saber duplicar un número
cualquiera y saber dividir entre 2. Se colocan los dos números uno al lado del otro y
mientras uno se va dividiendo por dos el otro se va multiplicando por dos. Las divisiones
se hacen, naturalmente enteras y los números no pares de esta columna se distinguen
digamos con un ∗ . El proceso termina cuando en la columna de los números que se
van dividiendo se encuentre 1. El resultado del producto se encuentra sumando los
números correspondientes a ∗ en la columna de los números que se van multiplicando
por 2. Vemos este proceso cuando se trata de multiplicar 312 por 45.
312
624
1248
2496
4992
9984
45∗
22
11∗
5∗
2
1∗
entonces 312 × 45 = 312 + 1248 + 2496 + 9984 = 14040.
a) Multiplique 19 por 168 por éste método.
11
b) Observe la siguiente definición recursiva:
a0 = a; b0 = b; s0 = 0
an+1 = 2an ; bn+1 = COC(bn , 2); sn+1 = sn + RES(bn , 2)an
Explique por qué este proceso recursivo representa realmente el algoritmo campesino para multiplicar a y b.
c) Demuestre por inducción que en la anterior recursión se tiene an bn − ab = sn .
Recursión en las palabras
Dado un conjunto finito Σ (denominado alfabeto) se construye un el conjunto Σ∗ de las palabras con letras en Σ, conjunto de gran interés en la informática. Intuitivamente, una palabra
es una sucesión finita de letras, no nos interesa para nada por ahora, que tengan sentido. Ası́,
si Σ = {a, b} entonces las palabras con tres letras son exactamente aaa, aab, aba, abb, baa, bab, bba, bbb.
Hay muchas formas de definir formalmente el conjunto de palabras, utilizaremos (por variar)
un manera recursiva. Para ello, tendremos en cuenta dos cosas: la palabra más pequeña que
se puede hacer sobre cualquier alfabeto es la palabra sin letras que notamos λ; por otra parte
suponemos que sabemos agregar una letra a la derecha de una palabra dada. siendo ası́:
Definición 3. Siendo Σ cualquier conjunto finito se define Σ∗ recursivamente ası́:
Base: λ ∈ Σ∗
Paso Recursivo: Si w ∈ Σ∗ y x ∈ Σ entonces wx ∈ Σ∗ .
Para cualquier Σ 6= ∅ se tiene que Σ∗ es un conjunto infinito. Ası́, si Σ = {a, b} entonces
Σ∗ = {λ, a, b, aa, ab, ba, . . .}. La definición recursiva es muy útil para formalizar conceptos alrededor de las palabras palabras y hacer demostraciones. La operación más importante entre
palabras es la concatenación,que intuitivamente significa ”pegar” palabras y que definimos
a continuación.
Definición 4. Se define en Σ∗ la concatenación recursivamente ası́:
Base: Si v ∈ Σ∗ entonces vλ ∈ Σ∗
Paso Recursivo: Si v, w ∈ Σ∗ y x ∈ Σ entonces v(wx) = (vw)x
Ejercicios
1. Definir recursivamente longitud de una palabra.
2. Si Σ tiene n letras ¿cuántas palabras hay en Σ∗ con longitud k? Demuestre por inducción sobre k su afirmación.
3. Se define |w|x , para w ∈ Σ∗ , x ∈ Σ recursivamente ası́:
i) Base: |w|x = 0
ii) Paso recursivo: |wy|x = |w|x , si y 6= x y |wy|x = |w|x + 1, si y = x.
Intuitivamente ¿qué es |w|x ?
4. Demostrar que la concatenación entre palabras es asociativa.
12
5. Sea Σ = {a, b}, para v, w ∈ Σ∗ se entiende que v ⊗ w se obtiene cuando reemplazamos
en v todas las a’s por w. Definir recursivamente esta operación. Demostrar en base a
su definición que esta operación es asociativa.
13
Descargar