![]() |
Как найти комбинации чисел с определенной суммой
Подскажите, как решить такую задачу на С++ или на Бэйсике
Есть набор чисел: от 0.5 до 3 с шагом 0.1. Нужно найти все комбинации, чтобы сумма получилась 11. Пример: 3+3+3+1+1=11 3+3+3+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+1=11 1+1+1+1+1+1+1+1+1+1+1=11 И повторов не должно быть, т.е. 3+3+3+1+1=11 это одно и то же 1+1+3+3+3=11 Результат должен быть в виде матрицы этих комбинаций или может быть как-то по-другому, как удобнее не знаю. |
Цитата:
|
Iska, думаю что лучше попросить текст этого учебного задания. А то переводить пересказ можно долго и с переменным успехом.
|
Цитата:
0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 В примере ошибся, извиняюсь. Задача не из учебников. |
Явно не из учебников. Ибо подбирать сумму нужно будет из порядка сотен триллионов вариантов сочетаний с повторениями. В принципе, можно пойти и другим, более плодотворным путём. Вам зачем?
|
Цитата:
|
Цитата:
1+1+1+1+1+1+1+1+1+1+1=11 Такой вариант тоже приемлем. 3+3+3+2=2+3+3+3 Это одна комбинация. |
Цитата:
|
Цитата:
|
Цитата:
|
Не вижу, каким образом подбор сочетаний с повторениями может быть связан с сортировкой.
|
Спасибо за помощь
|
Вложений: 1
Егор8, см. прикрепленный файл.
Надеюсь алгоритм ясен. |
Время: 22:39. |
Время: 22:39.
© OSzone.net 2001-