Повторение итерационной функции N раз

У меня есть итеративная функция f(x) = ax + b, которую я хочу повторить N раз. Мои действия следующие
1.) Определить итерационную функцию
2.) Присвойте значение каждому повторению
3.) Остановитесь на N-м повторении

# Define repeating function
f += a*f + b

# Assign values to iterations 


# Stop iterating at Nth value

for i in range(N+1):
    f += f(i)

Я не знаю, как маркировать каждую итерацию функции. Моя первая мысль — создать список всех значений функции.

Итак, вы хотите сохранить все промежуточные значения на пути к конечному значению N? Нечто подобное обычно хорошо решается с помощью itertools.accumulate, но совсем не ясно, действительно ли это то, что вы ищете.

ShadowRanger 19.03.2024 00:14
f += f(i) Это не имеет смысла, поскольку вы используете имя f как имя функции и как возвращаемое значение. Вы действительно имели в виду i += f(i) ?
John Gordon 19.03.2024 00:44

Что вы подразумеваете под «итеративной функцией»? Этой концепции не существует в Python. Некоторые из используемых вами обозначений кажутся математическими, а некоторые — Python. Рекомендую разбить это на части. Вам необходимо четко понимать проблему, которую вы пытаетесь решить, и использовать последовательные обозначения для ее описания. Сначала напишите функцию Python def f(x):.... Затем выясните, как можно вызвать эту функцию несколько раз. Похоже, генератор станет хорошим инструментом для решения вашей первоначальной проблемы.

Code-Apprentice 19.03.2024 00:57

Подсказка: вы можете сделать что-то вроде x = f(x) в Python. Учитывая математическую подготовку, это может немного сбить с толку. = здесь называется оператором присваивания. Это НЕ то же самое, что = в математике, где вы определяете равенство. ЭТО ОЧЕНЬ ВАЖНОЕ РАЗЛИЧИЕ, СЛЕДУЕТ ПОНЯТЬ, ПРЕЖДЕ ЧЕМ ПРОДОЛЖИТЬ. Извините пожалуйста за шапку, но это действительно важно подчеркнуть. Убедитесь, что вы знаете, что делает оператор присваивания, особенно в таком контексте.

Code-Apprentice 19.03.2024 01:01
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
4
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Первым делом нужно объявить свою функцию, в Python есть несколько способов сделать это. Когда функция небольшая, ее обычно определяют как лямбду. Лямбда соответствует синтаксису.

func = lambda parameter1, parameter2, ..., parameter: <return value>

Затем нам нужно будет определить начальные значения, в данном случае я назову конечное значение v и количество итераций N.

Последнее, что нужно сделать, это вызвать функцию N раз, для этого я использую цикл for.

# Define repeating function
a = 5
b = 1
f = lambda x : a * x + b

# Assign values to iterations 
v = 0
N = 10

# Stop iterating at Nth value
for i in range(N):
    v = f(v)

Благодарим вас за вклад в сообщество Stack Overflow. Возможно, это правильный ответ, но было бы очень полезно предоставить дополнительные пояснения к вашему коду, чтобы разработчики могли понять ваши рассуждения. Это особенно полезно для новых разработчиков, которые не так хорошо знакомы с синтаксисом или пытаются понять концепции. Не могли бы вы отредактировать свой ответ, включив в него дополнительную информацию на благо сообщества?

Jeremy Caney 19.03.2024 02:12

Другие вопросы по теме