jueves, 18 de octubre de 2007

Dónde está mi taquilla?

No es el problema de los tres cuerpos, ni el de calcular el volumen de una vaca, sino que el problema que más trae de cabeza a los alumnos de Cc. Físicas de la Universidad Complutense de Madrid es el de determinar dónde leches se encuentran las taquillas a las que puede optar.

Después de un sorteo, si eres tan afortunado como para que te haya tocado una taquilla, ahora te ves en la tesitura de elegir cuál. El problema es que te dan una serie de números tachados y sin tachar entre los que tienes que elegir el de la taquilla que desées... habitualmente sin tener ni idea de dónde está situada en relación con el armario que la contiene.

Los armarios tienen la siguiente estructura:


En la cuál podemos ver que es posible obtener una relación entre los números de taquilla y su situación relativa en el armario. En concreto, las ecuaciones que dan la fila y la columna son:


El script basado en estas ecuaciones se puede ver a continuación (archivo "taquilla.m"):

function [f,c]=taquilla(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
for i=0:l-1
for j=0:k-1
plot(i,j,'r*')
end
end
plot(c-1,k-f,'bs')


Os muestro el vídeo de cómo funciona, que es más cómodo para aquel que no lo va a tener que usar en su vida que bajárselo y probarlo en MATLAB.



Quizá más interesante sea el problema inverso, es decir, qué números corresponden a las taquillas situadas a una cierta altura, para eso está el siguiente script:

function [t]=fila(n,m)
%Determina cuáles de las n primeras taquillas están en la fila m basándose en el programa taquilla.m
k=1;
for i=1:n
[f,c]=taquilla(i);
if f==m
t(k)=i;
k=k+1;
end
end


Por ejemplo, si queremos ver las taquillas entre la primera y la número 400 en la segunda fila (empezando desde arriba, tal y como están numeradas), que es muy buena altura, tendríamos que teclear "fila(400,2)", y obtendríamos lo siguiente:


Más vídeotutoriales en Veoh y Astaroth's TV.

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+.