Неизвестное количество вложенных циклов #238443


#0 by Владислав
как организовать алгоритм с неизвестным числом вложенных циклов? задача такая: дано слово, например ПРОБА, у каждой буквы есть свои альтернативные варианты, например О можно заменить на А, П на Б и Ф и т.д., слово может быть произвольной длины. мне нужнно составить все комбинации, т.е. получить массив: БРОБА, ФРОБА, ПРАБА, БРАБА, ФРАБА, и т.д. как сделать?
#1 by Ёпрст2
А при чем тут цикл?
#2 by Молния
Ну рекурсия может пригодиться.
#3 by fabrikant
Пароли взламывать нехорошо
#4 by Убитое время
+1
#5 by Buran
Он прав, нужно построить дерево Можно рекурсию сделать, но лучше почитай про стек и его реализацию
#6 by smaharbA
Перем Рез; Функция Рекурсия(Букова) Если естьБукова Тогда Рез.ДобавитьЗначение(Рекурсия(Букова)); КонецФункции
#7 by smaharbA
А причем тут стек ?
#8 by Владислав
а как без цикла? пароли здесь ни при чем
#9 by Buran
Притом что рекурсивные алгоритмы в общем случае более эффективны/стабильны при реализации однопроходного цикла без рекурсии. Рекурсия по сути выполняет вычисления на стеке, но скрыто от программиста (средствами компилятора/интерпретатора)
#10 by Владислав
(5,9) спасибо, почитаю
#11 by smaharbA
Афигеть, а я чето не любил стек, больше регистры двигал туда-сюда... (совет - не задвигай умности, даже правильные) см
#12 by Убитое время
Тогда зачем про стек читать и понимать его реализациюЮ если он скрыт от программиста?
#13 by smaharbA
времени жизни этой ветки достаточно чтобы написать "это"
#14 by Молния
Дело в том что от стека зависит глубина вложенности циклов
#15 by Молния
т.е. не циклов а рекурсии. У тебя может просто памяти не хватить на большие слова.
#16 by smaharbA
да ну ?
#17 by miki
он про stack overflow
#18 by Ёпрст2
"Притом что рекурсивные алгоритмы в общем случае более эффективны/стабильны при реализации однопроходного цикла без рекурсии" Жесть , типа сам себе противоречу ...
#19 by Молния
А при чем тут регистры и стек. Под регистры память из кучи отдельно выделяется. Ты лучше документацию получше почитай. Изучи механизм вызова функций и передачи параметров. А особенно как это действует при рекурсии.
#20 by smaharbA
Друк посмотри разницу лет наших с тобою и подумай...
#21 by Молния
Вычисления на стеке это круто. Давно я про такие приколы не вспоминал. По моему это фортран умел. Из новых языков что то не припомню.
#22 by Молния
Нууу. тоже мне интеллект. Рассыплешся скоро.
#23 by smaharbA
+ только вот ты - читал, а я "регистры двигал" целыми упаковками, правдо маловато их было... :)
#24 by miki
Ну-у, хамство, само по себе, не аргумент в споре...
#25 by smaharbA
Молния - конечно прав в целом, но вот как реализовано всеравно не знает, потому не стоит гипотизы за теоремы выдвигать... (а со стеком баловство к нехорошему приводит)
#26 by Валентин
Под регистры память из кучи отдельно выделяется. - LOL!!!
#27 by Убитое время
Но выглядит это как громкое гонение волны по луже.
#28 by zalex
Было такое на паскале 7, на 1С пока не сталкивался. Хотя, может использую редко...
#29 by miki
В хрестоматиях обычно приводят пример по вычислению n!. Рекурсия дохнет раньше, чем цикл. stack overflow.
#30 by Молния
Цикл для итераций не требует постоянного увеличения памяти. В отличие от рекурсии. Да и вообще приношу свои извинения за если действительно хорошо знает реальные реализации. Я изучал только учебные, да и экзамен сдавал года 3 назад.
#31 by Buran
Имелось в виду, что алгоритм, требующий рекурсивных вычислений эффективней реализовывать однопроходными циклами на стеке. Для этого необязателен фортран. Достаточно массива. Откройте книжку по программированию, там есть примеры.
#32 by miki
Вот и чудненько :) Просто под термины следует сыпать достаточно контекста, чтобы людям понятнее было. Тут всё-таки форум в основном по 1С :)...
#33 by vde69
с полгода назад обсуждал эту тему: собственно задача свелась к последовательности которая проходит гарантированно все элементы от X до Y и не повторяеться, ни чего кроме X=X+1 не подошло короче делаешь ТЗ в которой хранишь счетчики разрядов...
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С