![]() |
|
Модераторы: volvo877, Snowy, MetalFan |
![]()
|
|
| Katerina |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
если в какой-нибудь простой задаче с последовательностью нужно используя рекурсивные ф-и распечатать первые n членов, удовлетворяющие данному условию, то имеется в виду, что каждый следующий элемент будет искаться рекурсивно или вообще весь алгоритм нужно написать рекурсивно? Если последнее, то как. Намного проще через обычный цикл
заранее спасибо |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
что значит весь алгоритм рекурсивно??? Ну к примеру, если у тебя задача будет заключаеться в том, чтобы найти факториал, то там умножение на самого себя уменьшеного на единицу целесообразно сделать рекурсивно. Можно и через цикл, но долшье работать и смотреться будет более запутанно. А если в задании сказано что-то конкретно через рекурсию сделать, то это что-то и надо будет делать именно так. |
|||
|
||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: нет Всего: 74 |
Пишешь рекурентную функцию.
Примерно такого типа
-------------------- Всем добра |
|||
|
||||
| corpsehunter |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 24.2.2007 Репутация: нет Всего: 3 |
В математике, если я не ошибаюсь, понятия "рекурсивные функции" вроде бы нет, как и рекурсивных последовательностей. Ты наверно имела ввиду рекурентные - в них каждый член можно получить, зная только несколько предыдущих членов. Большинство (если, вообще не все) можно реализовать как через обычный цикл, так и через рекурсию.
Если проще сделать цикл - лучше делай цик, он и работает быстрее. Но, если сказано, что надо использовать рекурсивные функции, то это, скорее всего говорили о реализации, т.е. лучше делать рекурсией. А вообще, слишком неконкретно поставлен вопрос. --------------------
Тест на IQ показал отрицательный результат... |
|||
|
||||
| Katerina |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Там сказано не конкретно. Текст задания: используя рекурсивную ф-ю распечатать первые 10 членов последовательности xn=3x(n-1)-20, x0=2, которые больше 7. Здесь рекурсивно оформляется последовательность, как отдельная ф-я, а алгоритм сравнения пишется через for как обычно? Или они имеют ввиду что-то другое? |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: нет Всего: 18 |
Katerina,
у тебя же написано - используя рекурсивную ф-ю Вот и сделай function Calc(N: Integer): Integer; begin if N =0 then Result := 2 else Result := 3 *Calc(n-1) - 20 end; однако которые больше 7 - таких не будет, поскольку, все, кроме первого члена, будут отрицательными Zero, >найти факториал, то там умножение на самого себя уменьшеного на единицу целесообразно сделать рекурсивно. Можно и через цикл, но долшье работать и смотреться будет более запутанно Вовсе нет, циклом быстрее. |
|||
|
||||
| Zero |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Стоп, попутал....
Да именно так... Саму функцию ты можешь оформить как написал MBo, только незабудь туда ещё x вставить...
Ну если х=1, то да, а иначе нет. |
||||
|
|||||
| corpsehunter |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 24.2.2007 Репутация: нет Всего: 3 |
Я же писал - рекурсивной последовательности нет. Последовательность рекуррентная. И связана она рекуррентной форумлой. Термин "рекурсия" используется, в основном, только в информатике, ну и в дискретной математике. Значит, раз сказано "используя рекурсивную функцию" это значит имеется ввиду способ реализации (с помощью рекурсивной функции), так что цикл не катит --------------------
Тест на IQ показал отрицательный результат... |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
corpsehunter, внимательней читай посты и то что в них спрашиваеться.
PS: это не раздел математики. |
|||
|
||||
| corpsehunter |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 24.2.2007 Репутация: нет Всего: 3 |
Я, как раз, внимательно и прочитал: вся проблема возникла в том, что она не разобралась в терминах. Конкретный вопрос был: что имелось ввиду в формулировке задачи. Так что, если вникнуть в суть самих терминов, то и вопроса никакого не возникнет. --------------------
Тест на IQ показал отрицательный результат... |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: нет Всего: 18 |
Zero,
>Ну если х=1, то да, а иначе нет Может, я не так понял задание, но для приведенной рекуррентной зависимости xn=3x(n-1)-20, x0=2: n: x[n] 0: 2 1: -14 2: -62 3: -206 4: -638 5: -1934 6: -5822 7: -17486 8: -52478 9: -157454 Общая формула для рек. последовательности x(n) = a*x(n-1)+b при данном x(0) такая: x(0)*a^k-b/(a-1)+b*a^k/(a-1) для a=3 и и b=-20 3^k*x(0)+10-10*3^k=3^k(x(0)-10)+10 Это сообщение отредактировал(а) MBo - 26.2.2007, 13:27 |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
MBo, ты задание понял правильно, но только х, ты посчитал знаком умножения и в программе не учёл. |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: нет Всего: 18 |
Zero,
>только х, ты посчитал знаком умножения и в программе не учёл нет, я посчитал,что х -обозначение последовательности, т.е. вот так: X[n] = 3*X[n-1] - 20 (а иначе не было бы смысла приводить x0) |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
|
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
Плохо, что не приводишь доказательства. Придется мне Это сообщение отредактировал(а) Kuvaldis - 26.2.2007, 21:24 Присоединённый файл ( Кол-во скачиваний: 6 )
______________.zip 6,29 Kb-------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
![]()
|
| Правила форума "Delphi" | |
|
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |