sábado, 20 de octubre de 2007

Taquillas (Mejora Gráfica)

Meditando un poco más sobre el problema de las taquillas XD, he llegado a la conclusión de que lo mismo la forma de representar gráficamente dónde estaba la taquilla que te había tocado (figura de la izquierda, programa taquilla.m) no era muy buena, así que la he cambiado por una que considero más clara a primera vista (figura de la derecha, programa taquillag.m).
















Pinchar sobre las figuras para verlas a tamaño completo

El código del nuevo programa, que podéis descargar desde aquí, es el siguiente:

function [f,c]=taquillag(n)
%Este script calcula la fila y la columna de un conjunto de celdas de k filas y l columnas.
l=3;
k=4;
a=fix(n/l);
b=fix(n/k);
d=fix(n/(l*k));
c=n-l*a;
f=a+1-k*fix(a/k);
if c==0
c=l;
f=f-1;
end
if n-(l*k)*d==0
f=k;
end
disp('Te ha tocado la taquilla en la fila:')
disp(f)
disp('columna')
disp(c)
close all
hold on
x=linspace(0,l);
y=linspace(0,k);
for i=0:l
plot(i,y,'r*')
end
for j=0:k
plot(x,j,'r*')
end
plot(c-1/2,k-f+1/2,'b*')


También destacar que este programa no sólo vale para calcular la taquilla que te ha tocado en la facultad de Cc. Físicas de la U.C.M. (pese a la reconocida importancia del problema XD), sino que vale para determinar la posición relativa con respecto a una celda cualquiera de k filas y l columnas que sigan una numeración como la descrita en el problema de las taquillas, es decir:

1, 2, 3, ..., l-1, l
l+1, l+2, ..., 2l-1, 2l
2l+1, 2l+2, ..., 3l-1, 3l
...
(k-1)l+1, (k-1)l+2, ..., kl-1, kl

Para hacer la adaptación a este nuevo problema sólo hay que cambiar en el código los valores de k y l que actualmente son: k=4, l=3.

No hay comentarios:

Publicar un comentario

Querido astarothista!,

Si te ha gustado la entrada y quieres dejar constancia de ello, tienes alguna sugerencia para completarla o corregirla, quieres mostrar tu opinión respecto a algo de lo que se haya hablado en esta entrada (con respeto) o simplemente quieres dejarme un mensaje a mi o a la comunidad, no dudes en comentar ;)!

Recuerda que también estamos en Facebook y en Google+.