Hitung nilai rata-rata
Kita semua tahu cara menghitung nilai rata-rata secara iteratif:
def average(nums):
result = 0
for num in nums:
result += num
return result/len(nums)
Dapatkah Anda memberikan solusi rekursif? Rumus untuk memperbarui nilai rata-rata ketika ada masukan baru mungkin berguna:
$$ \bar{x} \leftarrow \frac{x_i + (n-1)\bar{x}}{n} $$
Di sini, \(\bar x\) menyatakan nilai rata-rata, \(x_i\) adalah nilai baru yang digunakan untuk memperbarui rata-rata, dan \(n\) bersesuaian dengan nomor pemanggilan rekursif (tidak termasuk pemanggilan awal ke fungsi).
Latihan ini merupakan bagian dari kursus
Berlatih Pertanyaan Wawancara Coding di Python
Instruksi latihan
- Sediakan kasus dasar untuk algoritme.
- Definisikan pemanggilan rekursif untuk memperbarui nilai rata-rata.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# Calculate an average value of the sequence of numbers
def average(nums):
# Base case
if len(nums) == ____:
return ____[____]
# Recursive call
n = len(nums)
return (____ + ____ * ____) / ____
# Testing the function
print(average([1, 2, 3, 4, 5]))