@Kollapser

Как найти Среднее арифметическое элементов массива через рекурсию?

Написал вот это, но должен существовать более элегантный способ

test_list = [1, 4, 7]

def func(list1, a=0, b=0):
	if list1 == []:
		return 0

	b += list1[a]
	a += 1

	if a == len(list1):
		return b / a
	return func(list1, a, b)

print(func(test_list))
  • Вопрос задан
  • 483 просмотра
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Подумайте, как можно рекурсивно считать сумму. Далее, среднее арифметическое элементарно выражается через сумму, а сумма - через среднее арифметическое. Вот и получается формула:

Avg(a1,a2,...an) = (Avg(a2,...an)*(n-1)+a1)/n
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы