У меня есть массив, который содержит только 2 типа чисел (x и x-1), например: - {5,5,4,4,5,5,5}, и мне дан диапазон как 12-14 (включительно).я уже знаю, что длина массива постоянна 7, и я также знаю, сколько элементов каждого типа есть в массиве (количество)
теперь мне нужно найти, есть ли какая-либо комбинация элементов в массивечья сумма попадает в этот диапазон.
Все, что мне нужно, это количество элементов в подмножестве, сумма которых попадает в этот диапазон.
Я решил эту проблему, используя грубую силу следующим образомно он очень эффективен.
здесь count - это число x-1 в массиве
for(int i=0;i<=7-count;i++){
for(int j=0;j<=count;j++){
if(x*(i)+(x-1)*j>=min && x*(i)+(x-1)*j<=max){
output1=i+j;
}
}
}
, может кто-нибудь подскажет, есть ли лучший способ решения этой проблемы
пример: -
данный массив равен {5,5,4,4,5,5,5}, а указанный диапазон составляет 12-14.
поэтому я бы выбрал {5,5,4} подмножество, сумма которого равна 14, и поэтому ответ на количество элементов в подмножестве будет 3. {5,4,4} также можно выбрать в этом решении