Генератор наилучшего распределения

Простите, не знаю, как это должно правильно называться, ибо весьма далёк от математики/комбинаторики. Попробую объяснить. Мне нужен генератор для игры в спортлото, который бы выстраивал N номеров в систему (например, 6из45), но при этом, чтобы сумма чисел каждой комбинации соответствовала заданному диапазону.

Пример. Имеем такую систему из 8 чисел и 4 комбинаций этих чисел:
1 2 3 4 5 6
1 2 3 4 7 8
1 2 5 6 7 8
3 4 5 6 7 8
Данные цифры есть порядковые номера, которые используются для комбинаций. Для примера возьмём эти 8 чисел: 2, 5, 9, 17, 20, 21, 36, 42.
Если расставить эти числа в предложенном выше порядке, то мы получим комбинации со следующими суммами чисел:
2 5 9 17 20 21 = 74
2 5 9 20 36 42 = 114
2 17 20 21 36 42 = 138
5 9 17 21 36 42 = 130

Что я хочу сделать с этим: мне нужно скомбинировать эти числа по порядковым номерам таким образом, чтобы итоговая сумма каждой комбинации была, например, в диапазоне 127-155. Как видно из примера, только две комбинации из предложенных 4 соответствуют этому условию. Я могу поменять числа местами, чтобы "подтянуть" комбинацию с суммой 74, но тогда "слетят" другие комбинации, которые меня устраивают. А если мне нужно не 4 комбинации из 8 номеров, а 70 комбинаций из 45 номеров?.. В общем, мне нужно, чтобы калькулятор сам автоматически расставлял числа наилучшим образом, насколько это возможно в пределах заданного мной диапазона. Какие числа куда ставить, чтобы получалась сумма не ниже 127 и не выше 155 во всех комбинациях? Я ищу ответ на этот вопрос. Пока что нашёл на этом сайте генератор, который наиболее близок к тому, что я хотел. Это "Генератор всех возможных сочетаний, удовлетворяющих условию": https://planetcalc.ru/6786/ Но он просто выдаёт список всех возможных комбинаций с итоговой суммой, а мне надо, чтобы он сам выстраивал Числа в заданные мной Порядки, но наилучшим образом. Итого, я хочу задавать здесь 3 переменные:
a) Набор чисел
b) Порядковые номера в системе
с) Сумму чисел каждой комбинаций (или диапазон сумм)
Итог: генератор расставляет "а" по "b" таким образом, чтобы получилось "с".

Вот здесь показан график распределения сумм номеров: https://winloto.ru/graphics/qty_sum6of45.png?rnd=1594577854
Как видно из этой диаграммы, комбинации с суммами менее 100 и более 200 выпадают заметно реже. Мне нужно, чтобы при распределении номеров в системе, комбинаций с такими суммами генерировалось КАК МОЖНО МЕНЬШЕ, но чтобы сразу предлагались более частые.

Надеюсь, смог объяснить. Простите за корявость. Возможно ли создать такое?

По этому запросу созданы:

Подбор распределения

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

Creative Commons Attribution/Share-Alike License 3.0 (Unported) PLANETCALC, Генератор наилучшего распределения

Комментарии