Тогда я не понимаю описанной процедуры. В частности, что значит "Если S1>D, то я узнаю D"? Если D неизвестно, как Вы узнаете, что S1 > D? Ещё менее понятно, где в этой процедуре используется, что D равновероятно может лежать в любом месте отрезка. То, что для поиска D используется выбор точек наугад, никак не связано с этим: точно так же можно было бы просто делить отрезок пополам, нет?