The Generalized Double Pouring Problem: Analysis, Bounds and Algorithms
Gerold Jäger, Tuomo Lehtilä
TL;DR
This work studies the generalized double pouring problem for $k$ vessels, where a pour from $i$ to $j$ maps $a_i$ to $2a_i$ and $a_j$ to $a_j-a_i$, and the goal is to empty at least one vessel with as few steps as possible. It introduces a state-based framework $A=(a_1,\dots,a_k)$ with total $n$ and defines the key solvability quantities $g(N,k)$, $g'(N,k)$, $h(N,k)$, and $h'(N,k)$ to capture bounds across numbers of pourings. The paper establishes a complete solvability characterization for $k=2$, and for $k\ge 4$ proves an improved upper bound of $O(\log n\log\log n)$ on the number of pourings, together with an $\Omega(\log n)$ lower bound for $k\ge 3$; it also analyzes monotonicity and exact values for small $N$ and develops a constructive four-vessel algorithm. These results advance understanding of the interplay between parity, gcd structure, and pouring dynamics, and highlight several open problems on tightening bounds and the growth of the $g/h$ functions as $k$ grows.
Abstract
We consider a logical puzzle which we call double pouring problem, which was original defined for $k=3$ vessels. We generalize this definition to $k \ge 2 $ as follows. Each of the $k$ vessels contains an integer amount of water, called its value, where the values are $a_i$ for $i=1,2,\dots,k$ and the sum of values is $n$. A pouring step means pouring water from one vessel with value $a_i$ to another vessel with value $a_j$, where $ 1 \le i \not= j \le k $ and $a_i \le a_j $. After this pouring step the first vessel has value $2a_i$ and the second one value $a_j-a_i$. Now the pouring problem is to find as few pourings steps as possible to empty at least one vessel, or to show that such an emptying is not possible (which is possible only in the case $k=2$). For $k=2$ each pouring step is unique. We give a necessary and sufficient condition, when for a given $ (a_1,a_2)$ with $a_1+a_2=n$ the pouring problem is solvable. For $k=3$ we improve the upper bound of the pouring problem for some special cases. For $k \ge 4 $ we extend the known lower bound for $k=3$ and improve the known upper bound $\mathcal{O}((\log n)^2)$ for $k=3$ to $\mathcal{O}(\log n\log\log n)$. Finally, for $k \ge 3$, we investigate values and bounds for some functions related to the pouring problem.
