[пытаясь охватить диапазон здесь, потому что мне не ясно, что вы не понимаете]
сначала медиана - это значение middle . Медиана [0,0,1,99,99] составляет 1.
и, таким образом, мы видим, что данный код не вычисляет медиану (он не находит среднего значения). вместо этого он оценивает из некоторого теоретического распределения. как говорится в комментарии.
форум, который вы даете, предназначен для середины. если многие значения равномерно распределены между min и max, тогда да, это хорошая оценка медианы. в этом случае (предположительно) значения не распределяются таким образом, поэтому необходим какой-то другой метод.
Вы можете понять, почему это может быть необходимо, вычислив среднюю точку чисел, приведенных выше - ваша формула даст 49,5.
причина использования оценки , вероятно, в том, что она намного быстрее, чем поиск медианы. причина сделать эту оценку случайной , скорее всего, поможет избежать наихудшего случая при нескольких вызовах.
и, наконец, извините, но я не знаю, что такое дистрибутив в этом случае. вам, вероятно, нужно найти структуру данных и / или имя автора, чтобы узнать, сможете ли вы найти справочную статью или книгу (я подумал, что это может быть степенной закон, но см. правку ниже - кажется, добавляется очень небольшое исправление ) (Я не уверен, что это то, о чем вы спрашиваете, или вы более смущены).
[править] Еще немного, я думаю, что журнал (...) дает центральное смещение для равномерно случайного t. так что это в основном то, что вы предлагаете, но с некоторым разбросом около 0,5. Вот график одного случая , который показывает, что retval
на самом деле довольно маленькая корректировка.