Как на php сгенерировать случайные неперекрывающиеся диапазоны?
День добрый
Подскажите, может у кого код уже готовый есть?
Как на PHP сделать генератор случайных диапазонов?
На входе имеем
- длину всего диапазона (1) - от 100 до 1000 например
- длину нужных поддиапазонов (2) - 10 например
- общее число диапазонов (3) - 3 например
Все упирается в перекрытие
Алгоритм так то простой
Из исходного диапазона чисел генерируем случайные числа исходя из (1)
Например 400, 500, 900
И получаем диапазоны 400-410, 500-510 и т.д
Тут все элементарно
А как сделать, чтобы эти диапазоны при этом не перекрывались
Т.е например, имеем (1) от 0 до 15, (2) равное 3, (3) равное 4
Велика вероятность что диапазоны перехлестнуться друг на друга
Сперва пробовал так
Отсортировал числа по возрастанию
Смотрел чтобы следующее было более, чем предыдущее + длина диапазона
Если не выполняется увеличиваю его до необходимой величины
Но тогда к концу они начинают или "скапливаться" или им "не хватает места"
Т.е их аналогично нужно как то смещать влево (в начало общего диапазона)
В общем подскажите пожалуйста или алгоритм какой или может код готовый уже есть
Порыл в интернете, как то готового или близкого ничего