UPD. Переписал с нуля.
r <= z/x < r + 1
l <= z/y < l + 1
Тогда y/x = z/x : z/y > r / (l+1)
С другой стороны: y/x < z/x : z/y < (r+1)/l
Пока вижу диапазон [r / (l+1)]; [(r+1)/l]
Второе — минус один, если точное целое: приблизиться-то можно, а достичь нельзя. Сымитируем это таким образом…
[r / (l+1)]; [r/l]
Покажем, что границы достижимы (например, первая). Она затрагивает два неравенства.
z/x < r + 1
z/y >= l
Подбором x, y и z можно довести второе до равенства и сколь угодно сильно приблизить первое.
UPD2. Пусть r = [z/x] = 10, l = [z/y] = 3
Тогда [y/x] будет в пределах от [10/4] = 2 до [10/3] = 3. А Если без целой части — то от 2,5 до 3 2/3.
z = 100.000, x=10.000, y=25.001, y/x = 2,5001
z = 100.000, x = 9091, y=33.333, y/x ≈ 3,66659