32 < B < 33

86.2672 < 100B/A < 86.2673

so 100*32/86.2673 < A < 100*33/86.2672

(numbers are slightly different if decimals are rounded instead of truncated)

You could calculate this for every line and take the intersection of all the resulting intervals (in linear time), but it doesn't gain you a lot of precision. For the example data, the resulting interval of approximately (38.02, 38.25) doesn't even narrow down the tenths digit.

]]>Either way, it’s easy to solve. Each data value gives you an upper and lower bound for the highest value H. Take the max of the upper bounds and the min of the lower bounds and those are the overall bounds for H.

E.g., assuming truncation, then in this example the first line means 38 <= H < 39. The second line means 32 <= H/0.862672 and H/0.862673 < 33 (see how I adjust the final digit of the percentage to account for the uncertainty of the percentage). Etc.

In this case I get a lower bound of 38.018187901091885 and an upper bound of 38.253196750101139.

]]>looking forward to read more ! š ]]>