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, kursun bir parçasıdır
pandas ile Verimli Kod Yazma
Egzersiz 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ı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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))