Эффективный способ реализации частотной таблицы для интервальных данных в Java - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь создать таблицу частот, чтобы в конечном итоге создать гистограмму. Входные данные имеют тип Double и все должны попадать в интервал [-1; 1]. Я хотел бы разделить этот интервал на ячейки шириной, например, 0,02, и подсчитать количество вхождений значений в каждом интервале, нет необходимости хранить данные.

Я пробовал использовать Apache Commons Frequency , но похоже, что это работает только с дискретными значениями.

Есть ли библиотека, которая этого добивается?

1 Ответ

0 голосов
/ 06 августа 2020

Хотя мне не удалось найти библиотеку, которая делает то, что я хотел, вот решение, которое я придумал на случай, если кто-то обнаружит это в будущем:

Я создал тип данных, представляющий интервал, аналогичный к одному, который я нашел в Алгоритмы, 4-е издание Роберта Седжвика и Кевина Уэйна .

Фактическая таблица частот реализована как TreeMap<Interval, Integer>, поскольку она может сохранять записи в порядок ключей (для реализации Interval требуется Comparator). Затем все, что мне нужно было добавить, это метод добавления наблюдений, который увеличивает значение интервала в TreeMap.

Возможно, это не самый эффективный способ решить эту проблему, но, похоже, он работает для моих целей .

...