Я хочу динамически генерировать полосы, которые затем будут сгруппированы в отчетах.
Моей первой мыслью было сгенерировать полосы, взяв минимальное значение и максимальное значение, а затем разделив разницу.
Например, предположим, у вас была зарплата для большой группы людей:
- Самая низкая заработная плата зарабатывает £ 12 000 в год, а самая высокая зарабатывает £ 3 000 000
- Так что я разделил этона 10 групп одинакового размера: (£ 3mill - £ 12k) / 10 = £ 298800
- Так что моя первая группа идет от £ 12k до 310,800 и получает тысячи людей
- Мой второйгруппа идет от £ 310 000 до £ 610 000 и имеет несколько сотен
- В каждой другой группе есть несколько человек в каждой
Так что на самом деле это не очень полезно.Если бы мне пришлось создавать группы вручную, я бы хотел примерно одинаковые числа в каждой, что-то вроде: £ 12k-£ 14k, £ 14k-£ 18k, £ 18k-£ 25k, £ 25- £ 35k, ..., £1,5–3 миллиона фунтов стерлингов
Это всего лишь один пример - может быть много разных дистрибутивов.
Я ищу алгоритм для генерации полос, чтобы пользователи могли указать, сколько полос они хотят, и данные будут сгруппированы в такое количество полос с одинаковым числом в каждой.
Объединение должно быть быстрым - я не могу просто пройтись по всему набору данных.
Приложение на C # поверх SQL, но решения из других языков приветствуются.