BaşlayınÜcretsiz başlayın

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

Kursa Göz Atın

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]))
Kodu Düzenle ve Çalıştır