|
|
|
Помогите составить алгоритм перебора всех возможных сумм элементов из исходного массива.
|
|||
|---|---|---|---|
|
#18+
kefirkoу меня неизвестное кол-во элементов в массиве. Может быть 2, может быть 100. Дополнения: - Думаю, что уже при 15 - 20 элементах ты можешь не дождаться результата на своем компе... и причин на это туева хуча.... - реально сделать рабочую программу при известном заранее максимально возможном количестве элементов... - думаю, что преподу хватит вразумительной блок схемы на ватмане... (мне бы хватило) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2014, 22:04 |
|
||
|
Помогите составить алгоритм перебора всех возможных сумм элементов из исходного массива.
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2014, 22:08 |
|
||
|
Помогите составить алгоритм перебора всех возможных сумм элементов из исходного массива.
|
|||
|---|---|---|---|
|
#18+
VSVLAD, ваш пример дошел быстрее остальных, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2014, 22:42 |
|
||
|
Помогите составить алгоритм перебора всех возможных сумм элементов из исходного массива.
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, for i:=0 to Length(Values)-1 do begin; for j:=0 to k-1 do Sums[j+k]:=Sums[j]+Values[i]; Sums[k+k]:=Values[i]; k:=k+k+1; end; end; Как то тут маловато всего... а реально проверяли ? просто это не мой язык.... Для примера ТС нужны телодвижения и переборы: 1. Запись всего исходного массива "массив" в результат. 2. перебор всех двух цифр: For i1 = 1 To 4 For i2 = i1 +1 to 5 ' Запись в результат массив(i1) + массив(i2) next i1 next i2 3. Перебор всех Трех цифр: For i1 = 1 To 3 For i2 = i1 +1 to 4 For i3 = i2 +1 to 5 ' Запись в результат массив(i1) + массив(i2) + массив(i3) next i1 next i2 next i3 4. Перебор всех Четырех цифр: For i1 = 1 To 2 For i2 = i1 +1 to 3 For i3 = i2 +1 to 4 For i4 = i3 +1 to 5 ' Запись в результат массив(i1) + массив(i2) + массив(i3) + массив(i4) next i1 next i2 next i3 next i4 5. Запись в результат массив(1) + массив(2) + массив(3) + массив(4) + массив(4) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2014, 22:51 |
|
||
|
Помогите составить алгоритм перебора всех возможных сумм элементов из исходного массива.
|
|||
|---|---|---|---|
|
#18+
Готово. Посмотреть на реализацию можно тут . Вот сам код на Javascript'е: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. Отдельная благодарность VSVLAD и Dima T. Кстати задачка была не для препода, а для себя. Пытался разобраться в оптимизации линейного раскроя материалов или по-другому: "как эффективнее распилить палку на заготовки нужной длины". Прог то готовых куча, а вот как они это делают мне как раз и было интересно. Теперь я беру ближайшее снизу из массива к длине палки и получаю оптимальную комбинацию. Для вышеизложенного примера: Заготовки должны быть длиной 52, 41, 1, 75, 12мм, а палка к примеру 100мм. Самым оптимальным укладыванием будет 94мм (ближайшее снизу), т.е. 52+41+1мм. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2014, 12:34 |
|
||
|
Помогите составить алгоритм перебора всех возможных сумм элементов из исходного массива.
|
|||
|---|---|---|---|
|
#18+
kefirko, в таком случае непонятно, зачем был нужен массив. P.S. Не знаю, имеет ли смысл говорить, что имеет смысл изучить теорию вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2014, 13:10 |
|
||
|
Помогите составить алгоритм перебора всех возможных сумм элементов из исходного массива.
|
|||
|---|---|---|---|
|
#18+
kefirko"как эффективнее распилить палку на заготовки нужной длины". kefirkoЗаготовки должны быть длиной 52, 41, 1, 75, 12мм, а палка к примеру 100мм. Самым оптимальным укладыванием будет 94мм (ближайшее снизу), т.е. 52+41+1мм. Лже решение.... При таком подходе (при массовом использовании) останется куча отходов приличной длины, ибо так на кусок 12 см можно и вообще не выйти, в другом случай 75см ни с чем и никак и останется 25 см... Правильная постановка задачи: 1. Это есть набор палок (заготовок), возможно даже разной длины. 2. Есть необходимость порезать их на куски (детали) определенной длины (речь о партии). 3. Нужно это сделать так чтобы порезать минимальное количество заготовок и при этом иметь минимум никчемных обрезков, которые уже ни туда - ни сюда... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2014, 13:41 |
|
||
|
Помогите составить алгоритм перебора всех возможных сумм элементов из исходного массива.
|
|||
|---|---|---|---|
|
#18+
vmag, это уже другая задача. Для будущих разборов. Потихоньку к этому иду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2014, 15:07 |
|
||
|
Помогите составить алгоритм перебора всех возможных сумм элементов из исходного массива.
|
|||
|---|---|---|---|
|
#18+
kefirko, я отвечал как-то на такой вопрос . Там битовые маски, как у тебя, но проще реализация - зачем числа гонять с строки, когда есть битовые операции? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2014, 09:20 |
|
||
|
Помогите составить алгоритм перебора всех возможных сумм элементов из исходного массива.
|
|||
|---|---|---|---|
|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2014, 12:45 |
|
||
|
Помогите составить алгоритм перебора всех возможных сумм элементов из исходного массива.
|
|||
|---|---|---|---|
|
#18+
kefirkoПытался разобраться в оптимизации линейного раскроя материалов или по-другому: "как эффективнее распилить палку на заготовки нужной длины". Прог то готовых куча, а вот как они это делают мне как раз и было интересно. Это частный случай задачи о рюкзаке, упаковать в ограниченный объем вещи с максимальной общей стоимостью. Алгоритмы решения многократно описаны в инете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2014, 13:02 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1341238]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
159ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 458ms |

| 0 / 0 |
