Pulse aquí para volver a la página inicial

Problema 11
Sea V un vector de n coordenadas y k un natural menor o igual que n.

Escribir un programa que:

A- Ingrese los valores de las variables k y n, los elementos de V y el orden en que éstos aparecen en el vector.

B- Ordene los elementos de V en un nuevo vector W de manera que:

W(k) > W(j) si j <k

W(k) < W(j) si j >k

Problema 12
Una palabra es anagrama de otra cuando se obtiene una de la otra por permutación de sus letras. Por ejemplo:

pote es anagrama de tope

saco es anagrama de cosa y de ocas

porta es anagrama de topar, de tropa y de parto

Escribir un programa que: dado un diccionario castellano pueda determinar los conjuntos de anagramas.

Por ejemplo:

Si en el diccionario sólo tuviésemos las palabras:

cava

empresa

pote

torta

tope

trota

vaca

los conjuntos de anagramas serían:

cava - vaca

empresa

pote - tope

torta - trota

Comentario: La palabra INSTITUCIONALIZACIÓN tiene 20 letras, por lo tanto hay 19!/3 permutaciones posibles. Si suponemos que "procesar" cada permutación tarda 1 segundo, nos llevaría más de 10 años "procesarlas" todas. Entonces, hay que buscar con cuidado una solución. Es importante, además, tener en cuenta que un diccionario castellano tiene aproximadamente 75000 palabras.

Problema 13
Para un palabra dada encontrar todos sus anagramas.

Problema 14
Dado un conjunto de N números cualesquiera, un número T y un entero K, cuán rápido puede Ud. determinar si existe un subconjunto de K elementos cuya suma es, a lo sumo, T?

Problema 15
Dado un vector V de N (N > 1) componentes y un entero positivo M < N

V = [a(1),a(2),...,a(M),a(M+1),...,a(N)]

escribir un programa que lo lleve a la forma:

W = [a(M+1),a(M+2),...,a(N),a(1),...,a(M)]

o sea, si consideramos:

A = [a(1),a(2),...,a(M)] B = [a(M+1),a(M+2),...,a(N)]

podemos pensar que se trata de llevar el vector

V = AB

a la forma W = BA

Nota: Ningún otro vector adicional podrá usarse y deberá hacerse la menor cantidad de reordenamientos de los elementos de V. Llamamos "reordenamiento" a cada sentencia en la que se han intercambiado dos elementos de V.

Problema 16
Con la notación del problema anterior, escribir un programa que a un vector

V = ABC

lo lleve a la forma W = CBA

Problema 17
Sea P(x) = -x4 - x3 + 1, observemos que:

P(-1) = -1 + 1 + 1 = 1 > 0

P(1) = -1 - 1 + 1 = -1 < 0

los matemáticos, mediante el llamado "Teorema del Valor Intermedio" han probado que entre -1 y 1 debe existir una raíz de P, o sea, un número c tal que P(c) = 0.

Escribir un programa de manera de determinar c con un error menor que 10-2.

Comentario: El teorema a que hacemos referencia vale en un contexto más general, pues afirma que:

si f:[a,b] --> R es una función continua y f(a) < f(b) o bien f(a) > f(b), dado cualquier valor d entre f(a) y f(b), existe c entre a y b tal que

f(c) = d

Problema 18
(Los puentes
de Konisberg)

Por la ciudad de Konisberg pasa un río en el que se encuentran dos islas, A y B, conectadas por un puente. En la isla A hay dos puentes que la unen con la margen izquierda y dos que la unen con la derecha. En la isla B hay un sólo puente que la une con la margen izquierda y uno sólo con la margen derecha. Quedan en total 7 puentes. El problema consiste en determinar si se puede dar un paseo caminando de manera de pasar por cada puente exactamente una vez.

Problema 19
Para un número positivo a distinto de 1 y para un número b positivo cualquiera se define el "logaritmo en base a de b" (loga(b)) mediante la relación siguiente:

loga(b) = x si y sólo si ax = b

La importancia del logaritmo radica en las siguientes propiedades:

loga(b.c) = loga(b) + loga(c) para b > 0 y c > 0

loga(bc) = c.loga(b) para b > 0

loga(b/c) = loga(b) - loga(c) para b > 0 y c > 0

Escribir un programa que permita el ingreso de un número natural n y encuentre el mayor entero menor o igual que log2(n).

(Ayuda: Si 1 < b < 2 entonces 0 < log2(b) < 1

Para n > 1, log2(n) = 1 + log2(n/2))

Problema 20
Los Laboratorios Bell de E.E.U.U. encargaron a Michael Lesk desarrollar un sistema para ubicar telefónicamente a las personas que estaban vinculadas con ellos. Lo que se hizo fue lo siguiente: Como en el teléfono se tienen los números 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 y los símbolos * y #, se puede asignar a cada uno las letras del alfabeto de la siguiente manera:

2 ---------- A, B, C

3 ---------- D, E, F

4 ---------- G, H, I

5 ---------- J, K, L

6 ---------- M, N, Ñ, O

7 ---------- P, Q, R, S

8 ---------- T, U, V

9 ---------- W, X, Y, Z

reservando el 0 para llamar a la operadora. Para llamar a Gómez, Juan se debe marcar el código:

4 6 6 3 9 * 5 *

(El símbolo * denota que ha terminado el apellido y lo que sigue indica la inicial del nombre)

Puede pasar que a dos personas distintas les corresponda el mismo código. Sin embargo, Michael Lesk, determinó que esto sucede en sólo el 0,2% de los casos.

Suponiendo que alguien se toma el trabajo de cargar la guía telefónica de una ciudad determinada, escribir un programa que al entrar el código correspondiente al apellido seguido de la inicial del primer nombre

-dé el teléfono de la persona en el caso de que haya una única persona con ese código

-cuando haya dos personas distintas con el mismo código, emita un mensaje apropiado de manera de pedir más información para determinar el número telefónico buscado.

Sería interesante que Ud. se tome el trabajo de ingresar su propia agenda telefónica y determine, en esa pequeña muestra, cuántos de sus amigos no tienen un código único y compare el resultado con el obtenido por Michael Lesk .