dd(low, high, n) =
let diff = size(high) - size(low)
c_1, .. c_n = Partition von (high - low)
if exists i : test (low + c_i) == FAIL
then dd( )
else if exists i : test (high - c_i) == OK
then dd( )
else if exists i : test (low + c_i) == OK
then dd( )
else if exists i : test (high - c_i) == FAIL
then dd( )
else if n < diff
then dd( ) else (low, high)
http://www.infosun.fim.uni-passau.de/st/papers/computer2000/