![]() |
|
![]() ![]() ![]() |
|
cosamia |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 11.5.2005 Репутация: нет Всего: нет |
Подскажите может кому попадался алгоритм выдающий всевозможные комбинации для ситуации:
Имеем начальный массив с данными (100,0,0,0) шаг = 10 Дальнейшие комбинации будут (90,10,0,0), (80, 10, 10,0) и тд Общая сумма всегда должны быть 100 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
cosamia |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 11.5.2005 Репутация: нет Всего: нет |
Это не совсем то Там идет речь о разбиении числа N на все возможные комбинации те для 4 это будет комбинация из 4 чисел В таком случае для моего примера, для 100 это будет комбинация из 100 чисел, а я могу использовать только 4 числа |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Если тебе удалось разобраться в сути алгоритма, то не должна вызвать сложностей и его модификация для решения твоей задачи.
Добавлено через 4 минуты и 49 секунд А уж если совсем туго, то
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
cosamia |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 11.5.2005 Репутация: нет Всего: нет |
Акина, мне кажется в этом алгоритме есть ошибка - на каждой итерации сумма всех значений не будет равна 100
Добавлено через 7 минут и 46 секунд Да проверил, данный алгоритм не правильный сумма всех элементов на каждой комбинации не равна 100 Это сообщение отредактировал(а) cosamia - 12.11.2012, 17:44 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
![]() ![]() -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
cosamia |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 11.5.2005 Репутация: нет Всего: нет |
1 sec
Добавлено через 3 минуты и 19 секунд Sorry ![]() ![]() Большое спасибо за помощь! Добавлено через 7 минут и 33 секунды И все-таки выдается множество комбинаций где сумма меньше указанной Вот код int maxVal = 10; for(int i=0; i<=maxVal;i ++) { for(int j=0; j<=maxVal-i; j++) { for(int k=0; k<=maxVal-i-j; k++) { for(int m=0; m<=maxVal-i-j-k; m++) { NSLog(@"Result: %d:%d:%d:%d ", i, j, k, m); } } } } В принципе это решаемо путем отсеивания неверной комбинации сравнивая сумму Это сообщение отредактировал(а) cosamia - 12.11.2012, 19:47 |
|||
|
||||
disputant |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: 2 Всего: 3 |
А цикл по m зачем?!!! m определяется однозначно как 100-i-j-k... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |