Eyler loyihasi - Project Euler

Eyler loyihasi
Eyler
Sayt turi
Veb-saytni hal qilishda muammo
Tomonidan yaratilganKolin Xyuz
URL manziliprojecteuler.net
TijoratYo'q
Ro'yxatdan o'tishOzod
Ishga tushirildi2001 yil 5 oktyabr

Eyler loyihasi (nomi bilan Leonhard Eyler ) bu kompyuter dasturlari bilan echishga mo'ljallangan bir qator hisoblash muammolariga bag'ishlangan veb-sayt.[2][3] Loyiha kattalar va qiziqishni talabalarni jalb qiladi matematika va kompyuter dasturlash. 2001 yilda Kolin Xyuz tomonidan yaratilganidan beri Euler Project butun dunyoda mashhurlik va mashhurlikka erishdi.[4] Bunga 700 dan ortiq muammolar kiradi,[5] har bir yoki ikki haftada bir marta qo'shiladigan yangisi bilan. Muammolar har xil qiyinchiliklarga ega, ammo ularning har biri oddiygina ishlaydigan kompyuterda samarali algoritm yordamida protsessor vaqtining bir daqiqasidan kamroq vaqt ichida hal qilinadi. 2020 yil 5-aprel holatiga ko'ra, Project Euler-da butun dunyo bo'ylab kamida bitta muammoni hal qilgan 1 000 000 dan ortiq foydalanuvchilar mavjud.[6]

Saytning xususiyatlari

Har bir savolga xos forumni foydalanuvchi berilgan savolga to'g'ri javob berganidan keyin ko'rish mumkin.[7] Muammolarni identifikator, raqam hal qilinganligi va qiyinligi bo'yicha saralash mumkin. Ishtirokchilar o'zlarining yutuqlarini erishilgan muammolar soniga qarab yutuq darajalari orqali kuzatib borishlari mumkin. Har bir hal qilingan 25 muammo bo'yicha yangi darajaga erishildi. Muammolarning maxsus kombinatsiyalarini hal qilish uchun maxsus mukofotlar mavjud. Masalan, ellikta asosiy sonli masalalarni echish uchun mukofot mavjud. So'nggi muammolarning eng tez ellikta echimi asosida yutuqlarni kuzatib borish uchun maxsus "Eulerians" darajasi mavjud bo'lib, yangi a'zolar eski muammolarni hal qilmasdan raqobatlashishlari mumkin.[8]

Misol muammosi va echimlari

Project Eylerning birinchi muammosi

Agar 3 dan 5 gacha ko'paytiriladigan 10 dan past bo'lgan barcha tabiiy sonlarni sanab chiqsak, biz 3, 5, 6 va 9 ni olamiz. Ushbu ko'paytmalarning yig'indisi 23 ga teng.

1000 dan past bo'lgan 3 yoki 5 ning barcha ko'paytmalarining yig'indisini toping.

Ushbu muammo odatdagi masalaga qaraganda ancha sodda bo'lsa ham, samarali algoritm yaratadigan potentsial farqni ko'rsatishga xizmat qiladi. The qo'pol kuch algoritm 1000 dan kichik bo'lgan har bir tabiiy sonni tekshiradi va mezonlarga javob beradiganlarning yig'indisini saqlaydi. Quyidagi ko'rsatilgandek, ushbu usulni amalga oshirish oddiy psevdokod:

jami := 0uchun NUM 1 dan 999 gacha qil    agar NUM mod 3 = 0 yoki NUM mod 5 = 0 keyin        jami := jami + NUMqaytish jami

Qiyin muammolar uchun samarali algoritmni topish tobora muhim ahamiyat kasb etadi. Ushbu muammo uchun biz yordamida 1000 operatsiyani bir nechtagacha kamaytirishimiz mumkin inklyuziya - chiqarib tashlash printsipi va a yopiq shakl yig'ish formula.

Bu yerda, ning ko'paytmalarining yig'indisini bildiradi quyida .In katta O yozuvlari, qo'pol kuch algoritmi O(n) va samarali algoritm O(1) (doimiy vaqt arifmetik amallarini nazarda tutgan holda).

Shuningdek qarang

Adabiyotlar

  1. ^ "Projecteuler.net saytiga umumiy nuqtai". Alexa Internet. Olingan 22 oktyabr 2018.
  2. ^ Suri, Manil (2015-10-12). "Rekreatsiya matematikasining ahamiyati". The New York Times. Olingan 2018-06-05.
  3. ^ Foote, Steven (2014). Dasturlashni o'rganish. Addison-Uesli o'quv seriyasi. Pearson ta'limi. p. 249. ISBN  9780789753397.
  4. ^ Jeyms Somers (2011 yil iyun). "Qanday qilib men kodlashni o'rganishda muvaffaqiyatsizlikka uchradim, muvaffaqiyatsizlikka uchradim va nihoyat muvaffaqiyatga erishdim - texnologiya". Atlantika. Olingan 2013-12-14.
  5. ^ "Eyler loyihasi (muammolar ro'yxati)". Olingan 2020-05-05.
  6. ^ "Project Euler (Statistika) - kirish zarur". Olingan 2019-06-10.
  7. ^ "Eyler loyihasi - haqida". Olingan 2008-04-04.
  8. ^ "Eyler loyihasi (Yangiliklar arxivi)". Olingan 2015-03-31.

Tashqi havolalar