|
0 / 0 / 0
Регистрация: 03.06.2021
Сообщений: 9
|
||||||
Почему здесь лучше использовать рекуррентную последовательность, а не массив?09.06.2022, 09:10. Показов 651. Ответов 15
Всем привет, дана задача в которой нужно найти сумму при помощи рекуррентной последовательности. Запрещено пользоваться массивом
Почему в этом задании можно не пользоваться массивом? Чем было бы плохо использование массива в данном случае?
0
|
||||||
| 09.06.2022, 09:10 | |
|
Ответы с готовыми решениями:
15
Как лучше залить текстуру в массив? Какой формат текстуры лучше использовать? Что лучше использовать и почему??? Какой сборщик лучше использовать и почему ? |
|
736 / 702 / 110
Регистрация: 29.05.2015
Сообщений: 4,293
|
|
| 09.06.2022, 09:49 | |
|
Ничем. Массив даже лучше, т.к. экономит ресурсы (память) компьютера. Только голову иногда приходится поломать, как заменить рекурсию массивом.
1
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 09.06.2022, 10:05 | |
|
пройти 4
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 09.06.2022, 11:32 | |
|
Добавьте в функцию еще один аргумент, чтобы return r1 + Sum(n - 1, r2, r3, r4) можно было заменить на return Sum(n - 1, r2, r3, r4,r1) (при первом вызове дополнительный аргумент=0). После этого вы получите хвостовую рекурсию. Хвостовая рекурсия в свою очередь заменяется циклом. Либо ручками, либо силами компилятора. Итого, массив не нужен.
0
|
|
|
0 / 0 / 0
Регистрация: 03.06.2021
Сообщений: 9
|
|
| 09.06.2022, 11:47 [ТС] | |
|
Да, но дело в том, что я не понимаю как можно было массив использовать и чем он плох, потому что в источниках информации пишут что рекурсия много памяти занимает, отдельные функции создает, а якобы массив занимает меньше памяти
Не понимаю почему в этой задаче не эффективно использовать массив....
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 09.06.2022, 16:47 | |
|
Рекурсия создает стек-фреймы. Грубо говоря, у нее под капотом тот же самый массив, только она в него пихает все свои переменные разом (r1, r2, r3...) и немного технической информации сверху. Так что да, решение на массивах может быть рациональнее в плане расхода ресурсов. Стоит ли овчинка выделки это уже другой вопрос, надо смотреть сколько ресурсов уходит на, собственно, функцию и сколько на техническую информацию. Экономить 1% ресурсов в ущерб читаемости кода - так себе затея. Плюс, размер своего массива вы знаете, а вот сколько памяти выделено под стек - нет. Поэтому, когда место в стеке кончается, оно кончается внезапно и программа обычно просто грохается. Но если у вас не идет речи о тысячах вложенных вызовов или создания крупных массивов внутри функции, вас эта проблема скорее всего не коснется.
0
|
|
|
Вездепух
13200 / 6835 / 1822
Регистрация: 18.10.2014
Сообщений: 17,293
|
||
| 09.06.2022, 18:42 | ||
|
Для вычисления суммы такой последовательности не нужно ни массива (если не считать массивом набор переменных r), ни рекурсии. Она прекрасно вычисляется обычным циклом.
1
|
||
|
Комп_Оратор)
|
||||||
| 16.08.2022, 10:18 | ||||||
|
Рекурсия может быть полезна для compiletime eval)
0
|
||||||
|
Комп_Оратор)
|
||
| 16.08.2022, 10:28 | ||
|
0
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 16.08.2022, 10:28 | |
|
1
|
|
|
Комп_Оратор)
|
|
| 16.08.2022, 10:32 | |
|
Не по теме: Renji, а у нас на роботе до сих пор 11. И фирма известная. По слухам ближайшие лет 5 ни чего не изменится Renji, есть ряд прёмов в метапрограммировании где без рекурсии ни как. Это может полезно знать даже новичку)
0
|
|
|
Неэпический
|
||
| 16.08.2022, 10:36 | ||
|
gcc заменяет вызов этих функции на __builtin_*. Вы можете добавить ключ -fno-builtin и он перестанет это делать. Добавлено через 53 секунды https://godbolt.org/z/E8rhKx4hr
1
|
||
|
Комп_Оратор)
|
|||
| 16.08.2022, 10:52 | |||
|
0
|
|||
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
|||
| 16.08.2022, 12:26 | |||
|
Учат применять определённые методы. Добавлено через 2 минуты double arr[1000]; заполняем элементы arr[] случайными значениями суммируем элементы массива
0
|
|||
|
|
|
| 16.08.2022, 14:58 | |
|
Народ, не забывайте также, что вычисление рядов по принципу
Тоже называется рекуррентным вычислением ряда. И в школах часто дают задания "вычислить рекуррентно", имея в виду именно это вычисление, а не применение рекурсивных функций в программировании. Вы тут затеяли похоже большую дискуссию о нужде в рекурсии. Да и сам автор начал топик с рекурсивной функции. Но я на этом форуме сотню раз уже видел посты "сделайте мне рекурсию", когда имелся в виду цикл с рекуррентным соотношением. P.s. немного вник в задание автора, да, конкретно к его заданию моё замечание не относится. Но всё же.
0
|
|
| 16.08.2022, 14:58 | |
|
Помогаю со студенческими работами здесь
16
Что лучше использовать QMake или CMake и почему?
Как лучше закодировать app.config connectionStrings? Или лучше не здесь хранить подключение к бд? Какую графику лучше использовать при создании изображений для сайтов и почему? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|