|
|
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
Что то я туплю. как правильно сделать сабж.(можно просто строчку из числ кодов) вариант вида for(i1=0;i1<26;++i1) for(i2=0;i2<26;++i2) for(i3=0;i3<26;++i3) { a=i1+i2+i3; // объединяем результат f(a) //используем... } не нравится придумал вариант вида for(i=0;i<26*26*26;++i) { считаем скока надо остаток от деления на 26 } но тоже не нравится. плюс что делать если надо генерить варианты 20 символьных строк. Как правильно сделать? туплю жестоко... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:16:59 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
Тебя смущает 20 вложенных циклов или невозможность параметризировать количество циклов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:20:08 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
Перейди в систему счисления по основанию 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:25:45 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
три вложенных цикла нормально. Не нужны эти джедайские методики с делением и остатком. Понимать код будет гораздо проще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:29:26 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
fleandr, напиши рекурсивно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:31:16 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
хотя для 3-х циклов, это лишнее. я тоже думаю что 1-й вариант нормальный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:32:17 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudio, 20 вложенных циклов это бяка... я почти понял как сделать http://www.insidepro.com/doc/003r.shtml в общем надо: 1)сгенерить исходную строку. 2)пока не сдохнем 3)инкрементировать первый символ. 4)если код символа стал >27 сделать перенос и распространить его сколько надо наверно это оптимальный алгоритм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:37:15 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
fleandrrstudio, 20 вложенных циклов это бяка... я почти понял как сделать http://www.insidepro.com/doc/003r.shtml в общем надо: 1)сгенерить исходную строку. 2)пока не сдохнем 3)инкрементировать первый символ. 4)если код символа стал >27 сделать перенос и распространить его сколько надо наверно это оптимальный алгоритм не понял, а зачем там 20 вложенных циклов ? длина строки может менятся ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:38:59 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
да, тогда можно рекурсивно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:41:46 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
считай длину строки параметром я просто не могу смотреть на 12 вложенных циклов в коде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:42:02 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudioда, тогда можно рекурсивно только при рекурсивном(не в ленивых языках) придется выделять память, под весь список. а хаскелл, ИМХО, нормально бы справился с задачей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:50:38 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
fleandr в общем надо: 1)сгенерить исходную строку. 2)пока не сдохнем 3)инкрементировать первый символ. 4)если код символа стал >27 сделать перенос и распространить его сколько надо наверно это оптимальный алгоритм Всё верно. Если ты изучал ЦУ и МПС, то так работает сумматор. Только для оптимизации несколько двоичных разрядов объединяются в группы и суммирование групп происходит шифратором (или дешифратором не помню но это непринципиально). Это самый быстрый метод сложения двух двоичных чисел в природе. Быстрее не бывает. Его можно еще упростить, взяв за правило, что второе слагаемое всегда будет равно единице и схема сумматора упроститься. Сумматор можно сгенерить искусственно исходя из введённого параметра N=20 (к примеру). А каждая цифра сумматора будет 5-битной (как раз для кодирования) букв алвавита. Генерацию сумматора надо-бы делать динамической компилляцией. Но в этом сабже я не силён, особенно в если язык не С# и не Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:55:16 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
рекурсионный нормально. Вот в этом примере перебираются все слова с длиной на 5 символов и алфавитом в 6 символов. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:56:06 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
рекурсивно написал: но вот память кушает хотя и немного... интересно а все таки как быстрее public static string symbols = "abcdefghijklmnop"; public static string growstr(string s) { if (s.Length == 5) { Console.WriteLine(s); return ""; } else { string res = ""; for (int i = 0; i < 10; ++i) { res =s+ symbols[i]; res = growstr(res); } return res; } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 14:57:14 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudioрекурсионный нормально. Вот в этом примере перебираются все слова с длиной на 5 символов и алфавитом в 6 символов. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ключевое место, ты накапливаешь все элементы. а нужно, вызвать процедуру для каждого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:09:31 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
Это большая проблема ? У меня универсальная функция, ее можно запаковать в библиотеку. Передаешь алфавит, длину слова и она возвращает все возможные вариации слов по этому алфавиту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:23:30 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNrstudioда, тогда можно рекурсивно только при рекурсивном(не в ленивых языках) придется выделять память, под весь список. а хаскелл, ИМХО, нормально бы справился с задачей. Опять начинается, Хаскелл, Лисп ... там где за три минуты в 5 строчек кода пишется на шарпе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:24:34 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
все мы поняли, что когда речь идет о коротком понятном коде, все Лисперы копируют под кальку шарповый код и удаляют декларации. Возможны птицы высоты полета Ксени выдали нам бы что получше, но пока такой расклад по палатам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:25:46 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudioZyK_BotaNrstudioда, тогда можно рекурсивно только при рекурсивном(не в ленивых языках) придется выделять память, под весь список. а хаскелл, ИМХО, нормально бы справился с задачей. Опять начинается, Хаскелл, Лисп ... там где за три минуты в 5 строчек кода пишется на шарпе я согласен, что решение с циклом самое лучшее. я лишь сказал что рекурсия себя может быть приемлемой только для ленивого языка, и то уже начал в этом сомневаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:27:11 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudioЭто большая проблема ? У меня универсальная функция, ее можно запаковать в библиотеку. Передаешь алфавит, длину слова и она возвращает все возможные вариации слов по этому алфавиту. функция то универсальная, но поставленную задачу решает плохо. а если нужно вызвать процедуру для всех элементов с двадцатью порядками? памяти то хватит. а решение с циклом, будет работать долго, но память не съест. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:29:00 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudioвсе мы поняли, что когда речь идет о коротком понятном коде, все Лисперы копируют под кальку шарповый код и удаляют декларации. Возможны птицы высоты полета Ксени выдали нам бы что получше, но пока такой расклад по палатам причем здесь лисп и декларации? я лишь предположил, что в ленивом хаскелле, рекурсивный алгоритм сможет выполнится с использованием малого объема памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:31:21 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaN а решение с циклом, будет работать долго, но память не съест. долго это примерно сколько ... Давай посчитаем точно, допустим один миллиард комбинаций в секунду на самом мощном компьютере в мире. Получается ... 231 481 дней ... но памяти сожрет немного .... зачем эти громкие слова ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:33:22 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudioZyK_BotaN а решение с циклом, будет работать долго, но память не съест. долго это примерно сколько ... Давай посчитаем точно, допустим один миллиард комбинаций в секунду на самом мощном компьютере в мире. Получается ... 231 481 дней ... но памяти сожрет немного .... зачем эти громкие слова ? ну с 20-ю я загнул. но зачем же придираться к мелочам? смысл я надеюсь понятен, что итеративный алгоритм использует мало памяти, а рекурсивный ее жрет, и при этом скорости не добавляет. Наоборот требует выделения\освобождение памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:37:47 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNrstudioвсе мы поняли, что когда речь идет о коротком понятном коде, все Лисперы копируют под кальку шарповый код и удаляют декларации. Возможны птицы высоты полета Ксени выдали нам бы что получше, но пока такой расклад по палатам причем здесь лисп и декларации? я лишь предположил, что в ленивом хаскелле, рекурсивный алгоритм сможет выполнится с использованием малого объема памяти. Теория нам говорит. Что любой рекурсивный алгоритм можно переписать итеративно. Просто на 95% я уверен что это не нужно ТС. Оптимизировать нужно только тогда, когда это критично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:38:54 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNrstudioZyK_BotaN а решение с циклом, будет работать долго, но память не съест. долго это примерно сколько ... Давай посчитаем точно, допустим один миллиард комбинаций в секунду на самом мощном компьютере в мире. Получается ... 231 481 дней ... но памяти сожрет немного .... зачем эти громкие слова ? ну с 20-ю я загнул. но зачем же придираться к мелочам? смысл я надеюсь понятен, что итеративный алгоритм использует мало памяти, а рекурсивный ее жрет, и при этом скорости не добавляет. Наоборот требует выделения\освобождение памяти. Рекурсивный памяти совершенно не жрет. В рекурсионных алгоритмах есть недостаток, они не могут разворачиваться "бесконечно". Стек не резиновый. Но вложенность в 100 вызовов функций, вполне может быть. Здесь же рекурсионный алгоритм разворачивается на длину слова, что весьма приемлимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:41:15 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudioZyK_BotaNrstudioвсе мы поняли, что когда речь идет о коротком понятном коде, все Лисперы копируют под кальку шарповый код и удаляют декларации. Возможны птицы высоты полета Ксени выдали нам бы что получше, но пока такой расклад по палатам причем здесь лисп и декларации? я лишь предположил, что в ленивом хаскелле, рекурсивный алгоритм сможет выполнится с использованием малого объема памяти. Теория нам говорит. Что любой рекурсивный алгоритм можно переписать итеративно. Просто на 95% я уверен что это не нужно ТС. Оптимизировать нужно только тогда, когда это критично. напиши реализацию ф-и Аккермана, с константным использованием памяти. хотя вроде есть такое решение, но я его не видел, и оно мне не очевидно. возможно я вас запутал, говоря рекурсия, вместо рекурсивный процесс. тогда извиняюсь. ТС сам упоминал про 20 порядков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:43:41 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudio Рекурсивный памяти совершенно не жрет. В рекурсионных алгоритмах есть недостаток, они не могут разворачиваться "бесконечно". Стек не резиновый. Но вложенность в 100 вызовов функций, вполне может быть. Здесь же рекурсионный алгоритм разворачивается на длину слова, что весьма приемлимо. у тебя там древовидная рекурсия, что ужасно. она не сможет развернутся в цикл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:45:53 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
мой код Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:46:13 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNrstudio Рекурсивный памяти совершенно не жрет. В рекурсионных алгоритмах есть недостаток, они не могут разворачиваться "бесконечно". Стек не резиновый. Но вложенность в 100 вызовов функций, вполне может быть. Здесь же рекурсионный алгоритм разворачивается на длину слова, что весьма приемлимо. у тебя там древовидная рекурсия, что ужасно. она не сможет развернутся в цикл. я еще раз говорю, любой рекурсионный алгоритм ( на шарпе ) с блекджеком и шлюхами, можно развернуть в цикл - это математический догмат. хотя ну его этот алгоритм, без него можно обойтись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:50:34 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
вариант rstudio память хавает мегабайтами. хранить список - зло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:54:07 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
fleandrвариант rstudio память хавает мегабайтами. хранить список - зло с точки зрения преждевременной оптимизации, которая как известно из букваря корень всех зол - да. С точки зрения универсальности, законченности, рефакторинга и дебага. Гуд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 15:56:43 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
fleandr, кстате в коде у тебя уже глючок. Там 10 а там 12. А должни быть числа одинаковые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:02:26 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudio я еще раз говорю, любой рекурсионный алгоритм ( на шарпе ) с блекджеком и шлюхами, можно развернуть в цикл - это математический догмат. хотя ну его этот алгоритм, без него можно обойтись я же выше говорил, что под рекурсией имею ввиду рекурсивный процесс. т.е. процесс занимаемая память которого растет с ростом n. т.е. сложность больше О(1). сразу прошу не придираться к такому неточному(и содержащему ошибки) определению. главное суть понять. и шарп тут не причем, это математическое понятия. ты сможешь реализовать с помощью цикла, и собственного стека :). но это - рекурсивный алгоритм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:03:46 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
у тебя снова неточность, уже в который раз. Я смогу это реализовать итеративно без собственного стека. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:05:31 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudiofleandr, кстате в коде у тебя уже глючок. Там 10 а там 12. А должни быть числа одинаковые. поэтому, захардкореные константы - зло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:06:09 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudioу тебя снова неточность, уже в который раз. Я смогу это реализовать итеративно без собственного стека. я говорил про расходование памяти О(1). емнип, такое решение существует, но я его не видел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:07:20 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudio, я не мастер излагать свои мысли, советую обратится к вводному курсу по программированию чтобы вспомнить чем рекурсивный процесс отличается от итеративного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:09:49 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
хардкод констант зло эт да... глючка нет: 12 - это длна строки 10 - это длина алфавита ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:10:21 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNrstudioу тебя снова неточность, уже в который раз. Я смогу это реализовать итеративно без собственного стека. я говорил про расходование памяти О(1). емнип, такое решение существует, но я его не видел. помойму ты не понимаешь как работает компьютер в данном случае. Обьясняю на пальцах. В рекурсионном алгоритме для слова в 5 символов, будет держаться стек с вложенностью в 5 функций. С 10 символов - вложенность в десять функций. Если на вызов каждой функции с ее локальными переменными требуется допустим 50 байт, то число это можешь домножать соответственно на 5 или 10. Зависимость здесь линейная . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:10:52 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
fleandrхардкод констант зло эт да... глючка нет: 12 - это длна строки 10 - это длина алфавита так алфавит у тебя не десять символов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:11:43 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
мож кому не лень написать нерекурсивно... ))) вот и посмотрим как работать будет меня пока рекурсия устраивает. спс всем )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:12:27 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudio, на счет данной задачи, уже согласен. и рекурсивная пойдет, главное список не хранить. а на счет магических возможностей си-шарпа решения рекурсивного алгоритма итеративно, вопрос остается в силе. итеративно - это не линейная зависимость, а константная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:18:17 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
fleandrмож кому не лень написать нерекурсивно... ))) вот и посмотрим как работать будет меня пока рекурсия устраивает. спс всем )) на счет итеративного вопрос снят. рекурсивная ф-и, легче пишется, и легче читается. я просто затупил с вложенностью. не сообразил, что она не больше длины слова. а так, я больше люблю рекурсивные определения, чем итеративные, в том случае, если нет оверхеда по памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:30:05 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNrstudio, на счет данной задачи, уже согласен. и рекурсивная пойдет, главное список не хранить. а на счет магических возможностей си-шарпа решения рекурсивного алгоритма итеративно, вопрос остается в силе. итеративно - это не линейная зависимость, а константная. Да это не магические возможности си-шапра Гыы. Ты просто не понимаешь сути программирования и сути императивного представления программ. Вот итеративное решение. Оно менее наглядное, конечно. И алфавит заменен числами. А так все теже яйца только в профиль. Код: plaintext 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. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 16:47:53 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudio, то что эту задачу можно решить итеративно я уже упоминал выше(даже настаивал на таком решении). я попросил итеративное решение ф-и Аккермана. а итеративное решение обсуждаемой ф-и, я попробую записать и проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 17:19:13 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
пробуйте, как попробуете посмотрим на счет Аккермана ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 17:27:33 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
хсате на шот анхермана, тоже самое вайл тру зациклились, пока не выполним условие на отрез отказываемса уходить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 18:01:45 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudioхсате на шот анхермана, тоже самое вайл тру зациклились, пока не выполним условие на отрез отказываемса уходить нормально переписать в итеративный процесс не получилось. в твоем решении я не увидел ф-и зависимой n(переменного размера слова). да и ты уверен в правильности своего решения? а то у меня закрались сомнения. и буду благодарен, если выложишь(или дашь ссылку) итеративное решение ф-и Аккермана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 18:24:32 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNrstudioхсате на шот анхермана, тоже самое вайл тру зациклились, пока не выполним условие на отрез отказываемса уходить нормально переписать в итеративный процесс не получилось. в твоем решении я не увидел ф-и зависимой n(переменного размера слова). фикс вот здесь Код: plaintext 1. 2. 3. ZyK_BotaN да и ты уверен в правильности своего решения? а то у меня закрались сомнения. Код выдает правильный результат ? Выдает. Что еще нужно ? Могут быть еще смол фиксы, но принцип остался тотже. И вот я не уверен увижу ли решение которое ты обещал. ZyK_BotaN и буду благодарен, если выложишь(или дашь ссылку) итеративное решение ф-и Аккермана. мне не оч. интересно заниматься довольно рутинной работой. Я просто показал что рекурсию можно довольно просто переписывать итеративно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 18:30:47 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaN да и ты уверен в правильности своего решения? а то у меня закрались сомнения. алгоритм проверил, была незначительная помарка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 18:31:11 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudio мне не оч. интересно заниматься довольно рутинной работой. Я просто показал что рекурсию можно довольно просто переписывать итеративно. я уже выше упоминал, что сабжевый алгоритм легко преобразовать в итеративный. а вот итеративной ф-и Аккермана я нигде не нашел. а так, как ты упомянул выше, что понял как она реализуется, то я и попросил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 18:34:44 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNrstudio мне не оч. интересно заниматься довольно рутинной работой. Я просто показал что рекурсию можно довольно просто переписывать итеративно. а вот итеративной ф-и Аккермана я нигде не нашел. может быть здесь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 18:38:07 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudio, извиняюсь что морочил тебе голову, просто вспомнил упражнение которое не смог сделать, и подумал что то была ф-я Аккермана. а задача была такая: автор Упражнение 3.18. Напишите процедуру, которая рассматривает список и определяет, содержится ли в нем цикл, то есть, не войдет ли программа, которая попытается добраться до конца списка, продвигаясь по полям cdr, в бесконечный цикл. Такие списки порождались в упражнении 3.13. Упражнение 3.19. Переделайте упражнение 3.18, используя фиксированное количество памяти. (Тут нужна доста- точно хитрая идея.) сидел целый час, но ничего не придумал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 18:50:32 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudio, и в каком из тех решений, занимаемая память не зависит от n? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 18:54:17 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
итеративной реализации ф-и Аккермана, наверное не существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 18:59:18 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
Итеративных там несколько вариантов, но с минимумом памяти это нужно исследовать алгоритм в специализированной тулзе. Например кое что о алгоритме может рассказать Research Studio, токма Анкермана нужно переписать на васике ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 19:06:58 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
От смотри, от список вызовов функций ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 19:30:40 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
От как менялся от функции к функции параметр Ret ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 19:31:21 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
Ну и собсно васиковская реализация Анкермана в эмуляторе RS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2010, 19:32:06 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
void __fastcall TForm1::Button1Click(TObject *Sender) { const int n_symbols = 3; char buf[ n_symbols + 1]; int imax = pow( 26, n_symbols); for( int i = 0; i < imax; i++) { char* p = buf; for( int k = 0, s = i; k < n_symbols ; k++) { *p ++ = s % 26 + 'a'; s /= 26; } *p = 0; strrev( buf); Memo1->Lines->Add( buf); } return; } > плюс что делать если надо генерить варианты 20 символьных строк. поставить n_symbols = 20, если надо то использовать __int64 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 01:10:38 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 08:41:17 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ну яvoid __fastcall TForm1::Button1Click(TObject *Sender) { const int n_symbols = 3; char buf[ n_symbols + 1]; int imax = pow( 26, n_symbols); for( int i = 0; i < imax; i++) { char* p = buf; for( int k = 0, s = i; k < n_symbols ; k++) { *p ++ = s % 26 + 'a'; s /= 26; } *p = 0; strrev( buf); Memo1->Lines->Add( buf); } return; } > плюс что делать если надо генерить варианты 20 символьных строк. поставить n_symbols = 20, если надо то использовать __int64 не прокатит даже с инт64 2^64 =18446744073709551616 26^20 =19928148895209409152340197376 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 10:11:16 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaN, классический боянчик для linked list'ов. Рекурсивно будет где-то так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 10:13:55 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudio, ткни меня носом. не нашел я там алгоритма с константным потреблением памяти. чем отличается итеративный алгоритм от рекурсивного советую почитать. не рекурсией или итерациями, а именно потребляемой памятью. те алгоритмы которые названы итеративными потребляют стек или длинную арифметику, то есть пользы от переписывания нет. жаль там не пишут потребляемую память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 10:14:14 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNитеративной реализации ф-и Аккермана, наверное не существует. Мне тоже не верится. Но не в итерации. А в реализацию Аккермана на конечных автоматах, для заранее неизвестного (m,n). Использование стеков, списков, variable arrays - будет фейком по определению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 10:35:57 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
Такшо мне Нобелевку дадут если я Анкермана запишу итеративно с фиксированным или линейным потреблением памяти ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 10:39:16 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
Я скажу спасиб. И попрошу исходник в свою коллекцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 10:42:04 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
Курите скрины с Ресерч Студио. Определенные закономерности она уже показала, например как меняется М. 222 11 00 1111 0000 1111111 000000 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 10:52:46 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
rstudio, c фиксированным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2010, 13:53:08 |
|
||
|
алгоритм последовательной генерации строк aaa-zzz
|
|||
|---|---|---|---|
|
#18+
fleandr, Нашел, писал когда - то на си шарпе, и вот такое у себя нашел :) Код: plaintext 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. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. Зачем эту шняку написал, даже вспомнил. Надо было с эксел работать, я начал столбцы перебирать по буквам, и тут захотелось мне универсальности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2010, 00:26:31 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1343619]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
98ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 526ms |

| 0 / 0 |
