Project Euler
Оваа статија можеби бара дополнително внимание за да ги исполни стандардите за квалитет на Википедија. Ве молиме подобрете ја оваа статија ако можете. |
Проект Euler (именуван по Леонард Ојлер) е веб-страница посветена на серија пресметковни проблеми наменети да се решат со компјутерски програми.[1][2] Проектот привлекува возрасни и студенти заинтересирани за математика и компјутерско програмирање. Од создавањето во 2001 година од Colin Hughes, Проектот Euler се здобил со значење и популарност низ целиот свет.[3] Вклучува над 750 проблеми,[4] со нов додаден приближно на секои две недели.[5] Проблемите се со различна тежина, но секој од нив е решлив за помалку од една минута од процесорот со помош на ефикасен алгоритам на компјутер со скромно напојување.
Вид место | Problem Solving Website for Computational Mathematics |
---|---|
Создавач | Colin Hughes |
Адреса | projecteuler.net |
Комерцијално | No |
Зачленување | Free |
Пуштено | October 5, 2001 |
Од 27 април 2021[update] , проектот Euler има повеќе од 1,000,000 корисници кои го решиле барем едниот од проблемите, на над 100 различни програмски јазици со што било постигнато големо достигнување.[6]
Одлики на страницата
уредиФорум специфичен за секое прашање може да се види откако корисникот точно одговори на даденото прашање.[7] Проблемите се подредуваат по лична карта, број што треба да се реши и тешкотија. Учесниците го следат нивниот напредок преку нивоа на постигнувања врз основа на бројот на решени проблеми. Се постигнува ново ниво за секои 25 решени проблеми. Постојат специјални награди за решавање на специјални комбинации на проблеми. На пример, постои награда за решавање на педесет првични нумерирани проблеми. Постои специјално ниво "Eulerians" за следење на постигнувањата базирани на најбрзите педесет решавачи на неодамнешните проблеми, така што поновите членови можат да се натпреваруваат без решавање постари проблеми.[8]
Пример за проблем и решенија
уредиПрвиот проблем на проектот Euler е повеќекратни 3 и 5 (Multiples of 3 and 5)
Ако ги наведеме сите природни броеви под 10 што се множители на 3 или 5, добиваме 3, 5, 6 и 9. Збирот на овие множители е 23. Најдете го збирот на сите множители на 3 или 5 под 1000.
Иако овој проблем е многу поедноставен од типичниот проблем, тој служи за да ја илустрира потенцијалната разлика што ја прави ефикасниот алгоритам. Алгоритмот за brute сила (brute-force) го испитува секој природен број помал од 1000 и води тековна сума од оние што ги исполнуваат критериумите. Овој метод е едноставен за спроведување, како што е прикажано со следниот псевдокод (англиски: pseudocode):
total : = 0 for NUM from 1 through 999 do if NUM mod 3 = 0 or NUM mod 5 = 0 then total : = total + NUM return total
Решенија во Python (програмски јазик) (автор е Agnimandur) и Befunge (автор е JarJar ).[9]
N = 1000
print(sum([i for i in range(N) if i%3==0 or i%5==0]))
25*:*25**1-00p010p>00g 3% #v_10g00g+10pv
|p00:-1g00 < < <
@.g01< > ^
>00g5%#v_10g00g+10p^
^ <
За потешките проблеми, станува поважно (анг: inсreasingly important) да се одреди ефикасен алгоритам. За овој проблем, се намал 1000 операции на неколку со користење на inclusion-exclusion principle и формула за closed-form summation.
Еве, означува збир од множители на подолу . На големата О ознака (big O notation), алгоритамот за brute-сила (brute-force algorithm) е а ефикасниот алгоритам е (под претпоставка аритметички операции со постојано време).
Поврзано
уреди- Список на награди за компјутерски науки
- Список на нешта именувани по Леонард Ојлер
Наводи
уреди
Надворешни врски
уреди- Почетна страница
- Врски до проекти за превод на неколку други јазици
- ↑ Suri, Manil (2015-10-12). „The importance of recreational math“. The New York Times. Посетено на 8 Август 2021. Проверете ги датумските вредности во:
|access-date=
(help) - ↑ Foote, Steven (2014). Learning to Program. Addison-Wesley learning series. Pearson Education. стр. 249. ISBN 9780789753397.
- ↑ James Somers (June 2011). „How I Failed, Failed, and Finally Succeeded at Learning How to Code - Technology“. The Atlantic. Посетено на 2013-12-14.
- ↑ „Project Euler (list of problems)“. Посетено на 27 April 2021.
- ↑ „News - Project Euler“. projecteuler.net. Посетено на 2021-04-27.
- ↑ „Project Euler (Statistics)“. Посетено на 27 April 2021.
- ↑ „Project Euler - About“. Посетено на 2008-04-04.
- ↑ „Project Euler (News Archives)“. Посетено на 2015-03-31.
- ↑ „About - Project Euler“. projecteuler.net. Посетено на 2021-05-06.