Bu problemde elimize, bir kaynaktan gelen sürekli veriler var yani hep bir sayı akışı var. Bizden her gelen yeni sayı için o anki aritmetik ortalama istenmektedir.

Örneğin;

Akış ... 10, 20, 30, 40, 50, 60, …
10 geldiğinde ortalama 10.00
20 geldiğinde ortalama 15.00
30 geldiğinde ortalama 20.00
40 geldiğinde ortalama 25.00
50 geldiğinde ortalama 30.00
60 geldiğinde ortalama 35.00
..................

Çözüm şu şekilde olacaktır.

def get_avg(prev, num, count):
    return (prev * count + num) / (count + 1)


def calculate_stream(arr):
    avg = 0
    for i, num in enumerate(arr):
        avg = get_avg(avg, num, i)
        print(num, " geldiğinde ortalama = ", avg, sep="")

if __name__ == '__main__':
    arr = [10, 20, 30, 40, 50, 60]
    calculate_stream(arr)

Comments

comments powered by Disqus