| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Рекурсивное? заполнение массива (матрицы) |
| Автор: Master_ 18.9.2008, 07:07 | ||
Писал на php, В комментариях отметил формулы вычисления
Дело в том, что он находит только начальные элементы... По основной формуле он почти сразу же не может найти значения, потому что не вычислялся массив $a[($m-1), $a[$m.','.($n-1)] ]; здесь береутся значение и вставляется (см. код) и ключи бывают довольно разными и очень большими... Может есть какой алгоритм? Вот как должны выводится элементы (жирным обозначены те, что не нашлись): 1 2 3 4 5 6 7 8 2 3 4 5 6 7 8 9 3 5 7 9 11 13 15 17 5 13 29 61 125 153 509 Первые тр строчки от нуля до трех... Может кому понравилась задачка? |
| Автор: Akina 18.9.2008, 07:54 |
| Поверь на слово - черта с два кто чего поймет. Вместо того, чтобы рисовать свое решение, да к тому же тебя явно не устраивающее, лучше бы потратил силы на вменяемое описание задачи. |
| Автор: Akina 18.9.2008, 13:29 |
| ksili, последняя строка на арифметическую не сильно похожа |
| Автор: ksili 18.9.2008, 13:52 |
| извиняюсь ошибся. Это рекурсия a(i) = 2*a(i-1) + 3 да и остальные тоже можно рекурсивно описать. Собственно автор спрашивал алгоритм - так вот он |
| Автор: Akina 18.9.2008, 16:09 |
| Не понял - при чем тут рекурсия??? обычное параметрическое задание последовательности. |
| Автор: Master_ 18.9.2008, 19:11 |
| Нужно сделать 10на10 матрицу. Что для каждой искать последовательность?!?! Это не вариант! нужно именно заполнение как-то сделать... |
| Автор: Akina 19.9.2008, 07:49 |
| Опиши СЛОВАМИ закономерность заполнения. |
| Автор: Mayk 19.9.2008, 08:26 |
| выглядит как ф-ция Аккермана. |
| Автор: ksili 19.9.2008, 09:17 |
Даа.. чё-то я видать совсем запаренный в тот день был... закономерность нашёл, а название ей придумать не смог |
| Автор: Master_ 19.9.2008, 20:30 |
Точно! Вот как выглядит: http://ipicture.ru/ |
| Автор: Akina 19.9.2008, 21:13 |
| Ну так и в чем проблема? пишешь тупо рекурсивную функцию вычисления, и там же добавляешь строку занесения элемента в массив, если оба параметра находятся в заданных пределах. После чего просто стартуешь вычисление fnAck(10,10). PS. Есть только одна мелочь - вычислить fnAck(10,10) тебе не удастся. Просто оперативки не хватит. Вернее стека. Вложенность там получится дичайшая. |
| Автор: superwolf 20.9.2008, 16:18 |
| из википедии: "число fnAk(4,4) настолько велико, что количество цифр в порядке этого числа многократно превосходит количество атомов в наблюдаемой части вселенной." Так что боюсь и здесь не хватит стека) не то что для 10,10 |
| Автор: Master_ 20.9.2008, 16:23 |
| Блин, для четверки уже не находит, вообще может где-то известны числа, больше чем 3:x ? |
| Автор: Master_ 20.9.2008, 20:22 |
| Вообще возможно ли решение с числом больше трех? Может етсь где какие хорошие документы по полному описанию? |
| Автор: Akina 20.9.2008, 20:38 |
| Я когда-то давно ради любопытства считал (4,1). Вложенность максимальная, если я верно помню, была порядка 20000, и около сотни миллионов вызовов. Пришлось писАть специальный код программной организации стека в массиве. |
| Автор: Mayk 20.9.2008, 20:45 | ||||||
Полному описанию чего? чем не устраивает?
Ты куда отходил-то?
В википедии даже точные значения даны. А вообще для чего это безобразие надо? |