2012-01-08 2 views
-1

Мне нужно рассчитать расстояние между двумя гистограммами с помощью C#. У кого-нибудь есть идея?Как рассчитать расстояние между двумя гистограммами

+2

Этот вопрос является неопределенным. Какой формат представляют ваши гистограммы (два списка чисел?). Это также вопрос статистики, а не вопрос программирования. –

+3

Обычно, когда мне нужно что-то развивать, я начинаю читать об этом. Затем я пытаюсь решить проблему самостоятельно. И если я столкнулся с трудностями, я задаю вопрос о StackOverflow, показывая свой прогресс, вещи, которые я прочитал и попробовал, и конкретную проблему, с которой я сталкиваюсь. И если у меня нет никакой подсказки или времени, я нанимаю разработчика, чтобы сделать эту работу для меня. Как насчет тебя? –

+1

Определите гистограмму как точку в n-мерном векторном пространстве, а затем сопоставьте метрику с этим пространством. (например, евклидова метрика, метрика Манхэттена и т. д.). У вас будет метрическое пространство. (И я полагаю, это будет банахово пространство.) –

ответ

1

Может быть

int distance = 0; 
for (int i = 0; i < h1.Length; i++) { 
    distance += Math.Abs(h1[i] - h2[i]); 
} 

Или

int distance = 0; 
for (int i = 0; i < h1.Length; i++) { 
    int diff = h2[i] - h1[i]; 
    distance += diff*diff; 
} 
distance = Math.Sqrt(distance); 

EDIT: В ответ на комментарий Эрик Липперт, я добавил квадратный корень, потому что это было бы вычислить расстояние в евклидовом векторном пространстве.