Ortalama bir değer hesapla
Hepimiz yinelemeli olarak ortalama değerin nasıl hesaplanacağını biliyoruz:
def average(nums):
result = 0
for num in nums:
result += num
return result/len(nums)
Özyinelemeli (recursive) bir çözüm sağlayabilir misin? Yeni bir giriş verildiğinde ortalamayı güncellemek için şu formül işine yarayabilir:
$$ \bar{x} \leftarrow \frac{x_i + (n-1)\bar{x}}{n} $$
Burada \(\bar x\) ortalama değeri, \(x_i\) ortalamayı güncellemek için kullanılan yeni değeri, \(n\) ise (fonksiyona yapılan ilk çağrı hariç) özyinelemeli çağrı numarasını belirtir.
Bu egzersiz, kursun bir parçasıdır
Python ile Kodlama Mülakatı Soruları Pratiği
Egzersiz talimatları
- Algoritma için temel durumu (base case) belirt.
- Ortalama değeri güncellemek için özyinelemeli çağrıyı tanımla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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]))