Şu eğitimden: Temel Python Eğitimi
Çözüm: Asal sayıları daha hızlı bulma - Python Eğitimi
Şu eğitimden: Temel Python Eğitimi
Çözüm: Asal sayıları daha hızlı bulma
- [Anlatıcı] Bu meydan okuma için, muhtemelen anladığınız gibi, ilerledikçe asal sayıların bir listesini tutmak yardımcı olur. Bu liste yalnızca işlevin sonunda döndürülen şey değil, aynı zamanda şu anda test ettiğimiz sayının faktörlerini kontrol etmek için de kullanacağız. İşte asal sayılar listemiz. Başlamak için buraya iki tane ekleyeceğim. Ve iki rakamı tuhaf bir asal sayıdır. Bekle, bunu yeniden ifade etmeme izin ver. İki numara garip bir asal. Tek eşit asal sayıdır, bu da onu tuhaf kılar. Dolayısıyla, bu değerle başlamak, listemizdeki bu ikisi, fonksiyonumuzun bize verilen sayıya kadar kalan asal sayıları hesaplamasına yardımcı olacaktır. Ardından, üç ile fonksiyona geçirdiğimiz sayı arasındaki her sayı için karekökü elde edeceğiz. Bu değeri bir değişkene koyduğuma dikkat edin. Oradaki 0.5 kuvvetine bir sayı koyabilirdim, ama sonra bu döngüden her geçtiğimizde onu yeniden hesaplıyor olurduk. Bu nedenle, sonucu burada saklamak için biraz bilgi işlem gücü tasarrufu sağlar. Sayımız çarpana bölünebiliyorsa, yani sayı modülü faktörü sıfıra eşitse, o zaman asal olmadığını biliriz. Bir böleni var ve biz kırıyoruz. Aksi takdirde, sayının karekökünü geçtiysek ve henüz herhangi bir faktör bulamadıysak, bunun asal olduğunu biliriz. Böylece bu sayıyı asal sayılar listemize ekleyebiliriz. Yeni bir tane bulduk. Harika. Son olarak, topladığımız asal sayıların listesini döndürürüz. Genellikle programlamada, bir probleme ilk geçişi yapacak ve bu bölümün önceki bölümlerinde ilk asal sayı programımızda olduğu gibi ideal olmayan bir çözüm bulacaksınız. Ardından, kodunuzun verimliliğini önemli ölçüde artırmanıza olanak tanıyan bir içgörüye sahip olabilir veya bir şeyler öğrenebilirsiniz. Bu yüzden bir keresinde, uykuya dalarken bir programı nasıl daha verimli bir şekilde yazacağımı anladım. Işıkları açmak, kodlamak zorunda kaldım ve çok geç saatlere kadar ayakta kaldım, ama buna değdi. Programımın çalışma süresini iki günden 15 dakikaya indirdi. Çok heyecanlıydım. Programlarınızı aşırı optimize etmemeye her zaman dikkat edin. Önemli olmayan hafif bir verimliliğin peşinde koşarken okunamayan bir çöp yığını yazabilirsiniz. O mutlu orta yolu hatırlıyor musun? Bu tatlı nokta en Pythonic yoludur.
Deneme dosyaları ile uygulama yaparken öğrenin
Eğitmenin dersi öğretmek için kullandığı dosyaları indirin. İzleyerek, dinleyerek ve uygulama yaparak öğrenin.