Project Euler

Vikipedi, özgür ansiklopedi
Gezinti kısmına atla Arama kısmına atla
Project Euler
Euler
URL projecteuler.net
Slogan Euler Projesi, büyüleyici matematik dünyasına ilgi duyan herkesin becerilerini ve zevklerini desteklemek, meydan okumak ve geliştirmek için var.
Ticari? Hayır
Site türü Problem çözme
Kullanılabilir dil(ler) İngilizce
Oluşturan Colin Hughes
Başlama tarihi 5 Ekim 2001

Project Euler veya Euler Projesi, çözülmesi için matematiksel kavrayışlardan daha fazlasını gerektiren bir dizi zorlu matematik/bilgisayar programlama problemidir. Her ne kadar matematik zarif ve etkili yöntemlere ulaşmanıza yardımcı olsa da, çoğu problemi çözmek için bir bilgisayar ve programlama becerileri gerekecektir.Toplam problem sayısı 680'den fazladı r[1] ve hala projeye etkin olarak problem eklenmektedir.

Hedef kitlesi, temel müfredatın öğrenmeye olan açlığını beslemeyen öğrencileri, geçmişi öncelikle matematik olmayan ancak matematiksel şeylere ilgi duyan yetişkinleri ve problem çözme ve matematiğini en ileri düzeyde tutmak isteyen profesyonelleri içerir.[2]

Örnek soru ve çözüm[değiştir | kaynağı değiştir]

Project Euler'in ilk sorusu:

3’ün veya 5’in katı olan 10’dan küçük tüm doğal sayıları listelersek, 3, 5, 6, ve 9’u elde ederiz. Bu katların toplamı 23’tür.

3’ün veya 5’in 1000’den küçük tüm katlarının toplamını bulunuz. [3]

Birinci problem tipik problemlerden çok daha basit olmasına rağmen, verimli bir algoritmanın yaptığı potansiyel farkı göstermeye yarar. Kaba kuvvet algoritması 1000'den az olan her doğal sayıyı inceler ve gereksinimleri karşılayan sayılarin toplamını tutar. Aşağıdaki sözde kodda gösterildiği gibi, bu yöntemin uygulanması kolaydır:

Sözde kod
Tanımla TOPLAM 0 olacak;
her bir SAYİ icin SAYİ 1 den 1000 e kadar
  eger SAYİ kalan 3 = 0 veya eger SAYİ kalan 5 = 0 ise
    SAYI ekle TOPLAM;
çıktı TOPLAM

Daha zor problemler için etkili bir algoritma bulmak giderek daha önemli hale gelir.Bu sorun için, dahil etme-hariç tutma ilkesini ve kapalı formlu bir toplama formülünü kullanarak 1000 işlemi azaltabiliriz.

Python
print sum(x for x in xrange(1, 1000) if x%3==0 or x%5==0)
C++
#include <iostream>
using namespace std;
int main( ) {
  int sum = 0;
  for (int i = 0; i < 1000; i++)
    if ( i % 3 == 0 || i % 5 == 0 )
      sum += i;
  cout << sum << endl;
  return 0;
}

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ "En son yayınlanan problemleri içeren sayfa". 25 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Ocak 2020. 
  2. ^ "Euler Projesi Hakkında Sayfası". 25 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Ocak 2020. 
  3. ^ "Euler Projesi'nin ilk sorusu". 25 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Ocak 2020. 

Dış bağlantılar[değiştir | kaynağı değiştir]