lunes, 21 de septiembre de 2026

Un vasito de leche calentita y a dormir

¿Qué encontrarás en esta entrada?
  • Demostración del problema del vaso de leche y café.
  • Extensión a varias iteraciones.
Hace unos días me salió en redes sociales un vídeo de Quantum Fracture sobre un vaso de leche y otro de café. El vídeo se basaba en un problema propuesto por el Instituto de Ciencias Matemáticas un poco antes, y consiste en lo siguiente:
 
Tienes dos vasos iguales: uno de leche y otro de café. A continuación, tomas una cucharada del vaso de leche, la depositas en el de café y lo mezclas. Seguidamente, coges una cucharada de igual tamaño de la mezcla que ha resultado y la depositas en el de leche. Lo curioso de esto es que la cantidad de café en el vaso que originalmente era de leche es la misma que la de leche en el vaso que originalmente era de café.
 
La explicación de Quantum Fracture, si bien orientada a la divulgación, me pareció que simplificaba demasiado, partiendo de un supuesto muy concreto en el que el tamaño de la cuchara era la mitad del vaso, y así se puede ver gráficamente que el líquido en vaso ajeno es de 1/3.
 
Estoy con gripazo, y la cantidad de leche calentita y café que consumo ahora mismo como remedio creo que me autorizan a dar mi opinión, así que ahí voy. 
 

Demostración

Lo primero que hay que hacer es ser riguroso con el lenguaje. Cuando hablamos de "cantidad" nos estamos refiriendo a volumen, ni a moléculas, ni a masa, ni a ninguna otra cosa que no sea el volumen. También vamos a suponer que los líquidos se mezclan perfectamente, de forma totalmente homogénea, y no reaccionan entre sí químicamente de forma que pueda variar la densidad que tenían ambos líquidos antes de la mezcla. Así, 1 l de leche más 1 l de café son 2 l de mezcla.
 
Con ello, esta es mi demostración:
 


 

Script y extensión iterativa

Llegados a este punto pensé: ¿podría generalizarse y repetir el proceso una y otra vez? Y aquí es donde creo prudente recordar que, ante cualquier fallo que detectéis en mis cálculos, estoy haciendo esto con fiebre.
 
Me puse a programar un bucle iterativo en Octave/Matlab de la siguiente forma:
 
function [L1,C1,L2,C2] = Cucharadas (N,V,v)
%
%    ASTAROTH'S WORLD
%    https://astarothsworld.blogspot.com/
%
% Este script calcula N iteraciones del siguiente problema:
%
% Partimos de dos vasos: uno de leche y otro de café, ambos de volumen V.
%A continuación, pasamos una cucharada de tamaño v del vaso de leche al de
%café, y removemos. Después, cogemos otra cucharada del mismo tamaño de la
%mezcla y la devolvemos al vaso de leche. Se trata de ver cuánta leche y
%café componen las dos mezclas finales después de N iteracciones.
%
disp('')
disp('SITUACIÓN INICIAL:')
disp('')
%Inicialización de valores
L1=V;
C1=0;
V1=L1+C1;
L2=0;
C2=V;
V2=L2+C2;
disp(['Volumen total en el vaso 1: ',num2str(V1),' l'])
disp(['Cantidad de leche en el vaso 1: ',num2str(L1),' l'])
disp(['Cantidad de café en el vaso 1: ',num2str(C1),' l'])
disp('')
disp(['Volumen total en el vaso 2: ',num2str(V2),' l'])
disp(['Cantidad de leche en el vaso 2: ',num2str(L2),' l'])
disp(['Cantidad de Café en el vaso 2: ',num2str(C2),' l'])
disp('')
disp(['Volumen en una cucharada: ',num2str(v),' l'])
for i=1:N
    rhocini=C1/V1;
    rholini=L1/V1;
    rhoc=(C2+rhocini*v)/(V2+v);
    rhol=(L2+rholini*v)/(V2+v);
    L1=L1-rholini*v+rhol*v;
    C1=C1-rhocini*v+rhoc*v;
    V1=L1+C1;
    L2=L2+rholini*v-rhol*v;
    C2=C2+rhocini*v-rhoc*v;
    V2=L2+C2;
    disp('')
    disp(['ITERACIÓN: ',num2str(i)])
    disp('')
    disp(['Volumen total en el vaso 1: ',num2str(V1),' l'])
    disp(['Cantidad de leche en el vaso 1: ',num2str(L1),' l (',num2str(L1/V1*100),'%)'])
    disp(['Cantidad de café en el vaso 1: ',num2str(C1),' l (',num2str(C1/V1*100),'%)'])
    disp('')
    disp(['Volumen total en el vaso 2: ',num2str(V2),' l'])
    disp(['Cantidad de leche en el vaso 2: ',num2str(L2),' l (',num2str(L2/V2*100),'%)'])
    disp(['Cantidad de Café en el vaso 2: ',num2str(C2),' l (',num2str(C2/V2*100),'%)'])
    %Graficar:
    LA1(i)=L1;
    CA1(i)=C1;
    VA1(i)=V1;
    LA2(i)=L2;
    CA2(i)=C2;
    VA2(i)=V2;
end 
x=1:N;
close all;
subplot(1,2,1)
plot(x,LA1,'b--')
hold on
title('VOLUMEN DE LECHE Y CAFÉ EN CADA VASO EN CADA ITERACCIÓN')
xlabel('Iteracciones')
ylabel('Volumen (l)')
plot(x,CA1,'k--')
plot(x,LA2,'b+')
plot(x,CA2,'k+')
plot(x,VA1,'b')
plot(x,VA2,'k')
legend('Volumen de leche en el vaso de leche', 'Volumen de café en el vaso de leche','Volumen de leche en el vaso de café', 'Volumen de café en el vaso de café','Volumen total en el vaso de leche','Volumen total en el vaso de café')
subplot(1,2,2)
axis([0 5 0 3])
hold on
rectangle('Position',[1 1 1 0.75],'FaceColor',[L1/V1 L1/V1 L1/V1])
rectangle('Position',[3 1 1 0.75],'FaceColor',[L2/V2 L2/V2 L2/V2])
title('VASOS')
text(1.5,0.7,['Leche: ',num2str(L1/V1*100),'%'],'HorizontalAlignment','center')
text(1.5,0.6,['Café: ',num2str(C1/V1*100),'%'],'HorizontalAlignment','center')
text(3.5,0.7,['Leche: ',num2str(L2/V2*100),'%'],'HorizontalAlignment','center')
text(3.5,0.6,['Café: ',num2str(C2/V2*100),'%'],'HorizontalAlignment','center')
text(1.5,2,'VASO 1','HorizontalAlignment','center')
text(3.5,2,'VASO 2','HorizontalAlignment','center')
 
 Y con él he obtenido los siguientes resultados:
 
1.- Caso realista: un vaso de unos 250ml, una cuchara de postre 5ml, 1 iteracción 
 



Se verifica, efectivamente, que hay la misma cantidad de café en el vaso de leche que de leche en el de café (un 1,96% del volumen del vaso), conservando cada vaso gran parte de su naturaleza inicial, puesto que la cuchara es muy pequeña en comparación con el volumen de los vasos.
 
2.- Caso de Quantum Fracture: cuchara con la mitad del volumen que el recipiente
 



En este caso recuperamos el resultado de 1/3.
 
3.- Extensión del caso realista: un vaso de unos 250ml, una cuchara de 5ml, 30 iteracciones 
 




Como era de esperar, vemos que se tiende a que ambos vasos se conviertan en mezclas iguales, conservando en cada paso aquello de que la cantidad de café en el primer vaso es la misma que la de leche en el segundo.
 
4.- Extensión del caso realista: un vaso de unos 250ml, una cuchara de 5ml, 200 iteracciones  
 


 
Aquí continuamos las iteraciones hasta 200, viendo que efectivamente cada vez las mezclas de ambos vasos son más parecidas entre sí hasta ser casi iguales. 
 
La verdad es que el script lo he hecho un poco a ojo y con fiebre, por lo que no descartaría algún error, pero creo que más o menos reproduce lo que se podría esperar de un caso como este.
 
Al final, como ya apuntaba algún seguidor de Quantum Fracture, esta propiedad no es tan rara si tenemos en cuenta que partimos de un mismo volumen de leche y café repartido en dos vasos que, al final de cada iteración, acaban con ese mismo volumen. Dada la mezcla que sea en el vaso de café, todo lo que le falte de café para rellenar el vaso tiene que ser necesariamente leche, y el resto de leche debe estar en el otro vaso, y para completar ese otro vaso, sólo hay café.
 

 
Así que visto así es más evidente que la cantidad de cualquiera de los líquidos debe ser la misma que su opuesto en el otro vaso, sea cual sea la mezcla. Quizás lo que aporta esta entrada, si es que aporta algo, sea el cálculo exacto de esa cantidad en cada iteración dado el volumen del vaso y la capacidad de la cuchara.

martes, 29 de abril de 2025

Raw Entanglement

¿Qué encontrarás en esta entrada?
  • Mi nuevo tema: 'Raw Entanglement'
Fruto de otro agotador proceso catártico, saco mi nuevo... tema(?)... idea(?)... boceto(?)... emoción(?)... Raw Entanglement.
 

 
 
 
Espero que os guste, y recordad que podéis oír y descargar gratis este y otros temas en mi bandcamp.

domingo, 23 de marzo de 2025

Henares, ¡no nos engullas!

¿Qué encontrarás en esta entrada?
  • Imágenes del Río Henares en su crecida histórica de marzo de 2025
  • Algunas herramientas digitales útiles para estos casos
 
En las últimas semanas hemos sido testigos de cómo cuatro borrascas (Jana, Konrad, Laurence y Martinho) en tan solo 12 días han dejado una cantidad de lluvia inusual. En toda España se han activado las alertas por desbordamientos de los ríos. Aquí, en Alcalá de Henares, llevábamos unos días viendo el nuestro bien crecido hasta que, el pasado 11 de marzo, finalmente se desbordó.
 
Esta situación es realmente excepcional para la mayoría de los complutenses, menos para los más mayores, que quizás recuerden la última vez que esto ocurrió y el motivo por el que el barrio Venecia fue bautizado con tal apelativo. El hecho ha despertado gran curiosidad en los que vivimos aquí, así que quería compartir con vosotros alguna información de utilidad, fotos y vídeos.
 
Siguiendo la cronología, empezaré por los vídeos. Las imágenes de a continuación se tomaron el 9 de marzo, es decir, unos días antes del desbordamiento.
 
 
Y las siguientes, el día 16 (más adelante podremos ver que el nivel había descendido hasta aproximadamente los 2,5 m en este momento).
 
 
Hoy, tras desbordarse de nuevo y abrirse al público el paseo del río de Nueva Alcalá, he tomado las siguientes fotos.
 
Inusual ancho del Henares a su paso por Alcalá

Escalera que da directamente al río ahora que ha crecido

Parque anegado

 
En la página del SAIH (Sistema Automático de Información Hidrológica del Tajo), buscando por las zonas donde tengan los sensores, se pueden ver distintos datos sobre el agua que llevan los ríos de la cuenca del Tajo. En concreto, buscando por AR13, se pueden consultar los niveles a tiempo real del Río Henares en Los Espinillos (a la salida de Alcalá hacia Torrejón), una información que veo muy útil estos días.
 
 
El nivel normal en este punto está por debajo de los 1,3m, mientras que el umbral rojo (el más alto) se alcanza por encima de los 2,3m y estos días hemos estado rozando los 4m

Pudiendo comprobar que nos encontramos casi en los 4m de altura, aunque bajando ya a estas horas.
 
Otra fuente útil creo que es el mapa SNCZI - Inventario de presas y embalses. En este sitio, activando la capa "Peligrosidad por inundación fluvial T=X años" podemos ver qué zonas quedarían anegadas en distintos escenarios.
 
Los desbordamientos en esta ocasión han sido similares a lo reflejado en la capa "Peligrosidad por inundación fluvial T=10 años"
 
Con todo esto, espero que se quede en una anécdota histórica, y no en el principio de una nueva costumbre complutense.