Помогите с кодом на питоне - Общение Python мододелов

Вопрос Помогите с кодом на питоне

Регистрация
24 Мар 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
Последовательность чисел Ai определяется следующим образом:

A0 = 0, Ak = (Ak-1 + 3) / 2, k = 1, 2, 3…

Вывести первые N элементов последовательности.
 
Регистрация
24 Июл 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
A, N = [0.], int(input('N: '))
for i in range(1, N):
A.append(0.5*A[i-1]+1.5)
print(*A)
294565678_bedf28f43d65307a1f97bdab0562dcf0_800.jpg

 
Регистрация
8 Апр 2013
Сообщения
68
Репутация
0
Спасибо
0
Монет
0
Мне почему-то кажется, что это была задачка на рекурсию (хотя предложенные выше решения через динамическое программирование, разумеется, лучше). def A(n):
if n == 0:
return [0] # обработали крайний случай

A_lst = A(n-1) # создали список из всех предыдущих чисел
A_lst.append((A_lst[-1] + 3) / 2) # добавили к списку новое число по последнему сгенеренному
return A_lst

N = 10
print(*A(N)[1:]) # печатаем первые N чисел без начального нуля
Как по мне, разуме возвращать ответ именно списком, чтобы потом его можно было обрабатывать. Да, это заставляет нас хранить список в памяти, а не печатать числа на лету, но зато вы всегда можете доступиться к любому уже посчитанному числу и как угодно преобразовывать этот массив (считать по нему статистики, подавать на вход другой функции или что бы то ни было еще)
 
Сверху Снизу