Zaman ölçümü I
Slaytlarda, temel bir matematiksel işlemi gerçekleştirmek için gereken süreyi ölçmek amacıyla time.time() fonksiyonunun nasıl yükleneceğini ve kullanılacağını gördün.
Şimdi, benzer bir sorunu çözmek için iki farklı yöntemi değerlendirmek üzere aynı yaklaşımı kullanacaksın: 1'den 1 milyon'a (1.000.000) kadar olan tüm pozitif tamsayıların kareleri toplamını hesaplamak.
Videoda gördüğüne benzer şekilde, biri kaba kuvvet kullanan, diğeri daha matematiksel olan iki yöntemi karşılaştıracaksın.
formula fonksiyonunda, standart formülü kullanıyoruz
$$ \frac{N*(N+1)(2N+1)}{6} $$
burada N=1.000.000.
brute_force fonksiyonunda ise 1'den 1 milyon'a kadar her sayıyı dolaşıp sonucu elde ediyoruz.
Bu egzersiz
pandas ile Verimli Kod Yazma
kursunun bir parçasıdırEgzersiz talimatları
- Sonucu
formula()fonksiyonunu kullanarak hesapla. - Sonucu
formula()fonksiyonuyla hesaplamak için geçen süreyi yazdır. - Sonucu
brute_force()fonksiyonunu kullanarak hesapla. - Sonucu
brute_force()fonksiyonuyla hesaplamak için geçen süreyi yazdır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Calculate the result of the problem using formula() and print the time required
N = 1000000
fm_start_time = ____
first_method = formula(N)
print("Time using formula: {} sec".format(time.time() - fm_start_time))
# Calculate the result of the problem using brute_force() and print the time required
sm_start_time = ____
second_method = ____(N)
print("Time using the brute force: {} sec".format(time.time() - sm_start_time))