Ads 468x60px

Perfil

lunes, 17 de octubre de 2011

Problemas Propuestos en C


Problema 1

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 2

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 3

Para un palabra dada encontrar todos sus anagramas.

Problema4

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 5

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 6

Con la notación del problema anterior, escribir un programa que a un vector
V = ABC
lo lleve a la forma W = CBA

Problema7

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 8
(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.

Problema9

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 10

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)

0 comentarios: