Поскольку медиана для двух элементов была бы средним значением, я использовал сглаженную функцию signum, а xy () - это x ^ y. Есть идеи, чтобы сделать это лучше? Конечно, если у нас есть некоторые априорные знания, мы можем добавить код, используя минимальные и максимальные значения массива, перекос и т. Д. Для больших данных вы, возможно, не будете использовать массив, но для тестирования это проще.

аюсь вычислить медиану набора значений, но я не хочу хранить все значения, так как это может привести к потере требований к памяти. Есть ли способ расчета или аппроксимации медианы без сохранения и сортировки всех отдельных значений?

В идеале я хотел бы написать свой код немного следующим образом

var medianCalculator = new MedianCalculator();
foreach (var value in SourceData)
{
  medianCalculator.Add(value);
}
Console.WriteLine("The median is: {0}", medianCalculator.Median);

Все, что мне нужно, это фактический код MedianCalculator!

Обновить: Некоторые люди спрашивают, имеют ли значения, для которых я пытаюсь рассчитать медиану, известные свойства. Ответ - да. Одно значение с шагом 0,5 от -25 до -0,5. Другой также с шагом 0,5 от -120 до -60. Я предполагаю, что это означает, что я могу использовать некоторую форму гистограммы для каждого значения.

Спасибо

Ник

Ответы на вопрос(10)

Ваш ответ на вопрос