Комментарии 48
А паскаль забыли(
очень познавательно
выскажу пару идей после ознакомления:
— можно измерять «быстроту»/«красивость» различных языков
— данный ресурс показывает что умение программировать — это умение составить алгоритм, а не умение написать реализацию
— первая проблема датированна 2001 годом projecteuler.net/index.php? section=problems&id=1
выскажу пару идей после ознакомления:
— можно измерять «быстроту»/«красивость» различных языков
— данный ресурс показывает что умение программировать — это умение составить алгоритм, а не умение написать реализацию
— первая проблема датированна 2001 годом projecteuler.net/index.php? section=problems&id=1
Нудновато немного. Начиная с определенных, задачи становятся «на знание», такие, которые не решишь, не зная матаппарата, который лежит под задачей.
кроме этого ещё и перевести нужно правильно, иначе понять даже суть задачи будет нельзя.
Я бы не сказал, что задачи там «на знание». Точнее, просто знания необходимого мат. аппарата там просто недостаточно. Над многими из задач, даже зная всю необходимую теорию, приходится подумать. Я решил там почти все задачи и лишь в двух или трёх «упирался» в необходимость искать какую-нибудь формулу, которую я до этого не знал и не мог придумать сам.
Если кто не знает, вот еще задачки: acm.uva.es/problemset/
Тут уже количество языков поменьше, но проверяют не только правильность решения, но и скорость, и сожратую память.
Тут уже количество языков поменьше, но проверяют не только правильность решения, но и скорость, и сожратую память.
Ресурс для прокачки матан-скилла :)
Кстати, кто-нить прошел в on-site rounds в google code jam?
Иногда решаю задачки с www.spoj.pl/. В отличие от описанного сайта, там можно самому выбрать понравившуюся задачу. Для каждой задачи есть ограничение по времени исполнения и/или размеру исходников.
Рейтинг считается в основном по скорости исполнения, иногда по размеру исходника. Можно смотреть рейтинги по отдельному языку…
Вот :)
Рейтинг считается в основном по скорости исполнения, иногда по размеру исходника. Можно смотреть рейтинги по отдельному языку…
Вот :)
У Эйлера тоже можно самому выбирать задачу :) там нет такого ограничения, что нужно проходить все подряд, просто чем дальше, тем обычно сложнее задания.
Но никто не мешает выполнить первые десять, потом промотать и порешать за пятьдесят и за сотню задания, как я делал.
Но никто не мешает выполнить первые десять, потом промотать и порешать за пятьдесят и за сотню задания, как я делал.
Всё же сайт мне не нравится. Туда нужно отправлять не исходники а ответы. Это исключает такие пузомерки как скорость выполнения, занимаемая память и размер кода. Ну и статистика тоже соответственно не очень интересная.
Все дело в разной направленности сайтов :)
Проект Эйлера и не создан для любителей пузомерок, там смысл в том, чтобы сначала испытать себя, сможешь ли ты вообще задачу решить, а затем — почитать решения других и понять, как это можно было сделать эффективнее или просто иначе. В общем, не столько конкурс, сколько ресурс для самообразования.
Проект Эйлера и не создан для любителей пузомерок, там смысл в том, чтобы сначала испытать себя, сможешь ли ты вообще задачу решить, а затем — почитать решения других и понять, как это можно было сделать эффективнее или просто иначе. В общем, не столько конкурс, сколько ресурс для самообразования.
я, конечно, английский, неплохо знаю, но не до такого уровня.
там нет русского интерфейса?
там нет русского интерфейса?
Я вот знаю английский плохо, но этого вполне достаточно чтобы понимать вопросы (вкупе с Яндекс-словарями если уж совсем непонятно).
Есть русифицированная копия.
На главной странице в разделе ЧаВО понравился вопрос о возможности пожертвований =)
Красиво и ненвязчиво.
Красиво и ненвязчиво.
Клевый сайт, уже 3 дня спасает меня от скучной работы. До первого левелапа осталось пара задач. Решаю на языке tcl, стараюсь писать так, что бы прога работала на PDA Aser n311 не более минуты, пока в это ограничение не вписалось два решения. Так как там форум заморожен, а померяться письками охото, было бы круто создать здесь блог — Project Euler, где каждый пост посвящен решению одой задачи на конкретном языке, например, пост с именем 010-Haskell (теги project_euler_010, project_euler_haskell, haskell), где в комментариях проиходит треп по теме, автор приводит время работы своей программы и ссылку на исходный код, пояснения работы алгоритма в личном блоге. При такой структуре можно будет быстро сравивать свои результаты с результатами других и продолжать думать не зная эффективного алгоритма.
Это конечно не в правилах хабра, но если человек с низкой кармой говорит у меня есть алгоритм, и приводит время работы и правильный ответ на задачу, по предлагаю ему поднимать карму до того уровня, что бы он мог описать его в личном блоге.
Предлагаю пообсуждать идею пока в комментах, написать манифест (правила, подобные правилам выше) и создать блог.
Это конечно не в правилах хабра, но если человек с низкой кармой говорит у меня есть алгоритм, и приводит время работы и правильный ответ на задачу, по предлагаю ему поднимать карму до того уровня, что бы он мог описать его в личном блоге.
Предлагаю пообсуждать идею пока в комментах, написать манифест (правила, подобные правилам выше) и создать блог.
В принципе поддерживаю вашу идею(с интересом бы следил)… Только вот именно сайт Project Euler немного какой-то не такой =), хотя и поразвлекал вчера. А есть ещё такого типа проекты, кроме уже приведенных в комментах?.. Кажется TopCoder был, если не ошибаюсь… Хочется вот такое как Project Euler ток с большей статистикой, что-ли…
www.topcoder.com/tc, acm.timus.ru, icpcres.ecs.baylor.edu/onlinejudge/
вообщем-то похожие проекты. Еще проходил Google Code Jam.
вообщем-то похожие проекты. Еще проходил Google Code Jam.
Интересно, раньше с этим проектом не сталкивался, хотя алгоритмическими задачками интересуюсь. Спасибо, посмотрим.
Давно решаю задачки с этого сайта. Правда последние полгода времени нет. А так решено 132 из 202 задач.
Забавно посмотреть как у одних решение занимает страницу, а у других полстроки.
мне кажется, с выключенным кешом и при помощи их каптчи их можно заDDOS'ить.
случайно так вышло, аж 429 запросов на картинку.
случайно так вышло, аж 429 запросов на картинку.
Интересный проект, спасибо :)
Хотел поделиться своим решением второй задачи, а там не разрешают его запостить, пишут Thread Locked (Archived).
Хотел поделиться своим решением второй задачи, а там не разрешают его запостить, пишут Thread Locked (Archived).
Ну решение второй задачи такое же как у меня я нашёл ещё у двоих и успокоился :) (разве что у меня оно заняло одну строку, а не 5-10, но логика та же). А вот что касается решения первой задачи — аналога своему я не увидел, хотя с программистами кишущими на «K» мой PHP тягаться не может. Если Вы считаете решение интересным — поделитесь, т.к. в их форум запостить уже нельзя.
Первая задача решается без кода. Достаточно найти суммы арифметических прогрессий A = 3 + 6 +… + 999 (числа, делящиеся на 3), B = 5 + 10 +… + 995 (числа, делящиеся на 5), C = 15 + 30 +… + 990 (числа, делящиеся на 15) и вычислить выражение A+B-C. :)
А во второй можно найти несколько интересных рекуррентных соотношений. Сначала для удобства допишем к последовательности Фибоначчи слева единицу: тогда четные члены будут иметь номера, делящиеся на 3. Обозначим последовательность Фибоначчи за a[n], а за b[n] подпоследовательность четных членов: b[n] = a[3 * n]. Тогда нам нужно для некоторого N найти сумму S[N] = b[1] + b[2] + b[3] +… + b[N]. Можно заметить и доказать соотношение b[n+2] = b[n] + 4 * b[n+1]. На этом, в принципе, можно остановиться — просто просуммировать b[n] в цикле. Но также можно заметить, что S[n] = (b[n] + b[n+1] — 2) / 4, и тогда можно вычислять последовательность b[n], ничего не суммируя по ходу. Короче, решение на языке калькулятора bc:
a = 0
b = 2
while (b < 4000000)
{
c = a + 4 * b
a = b
b = c
}
print (a + b — 2) / 4
quit
А во второй можно найти несколько интересных рекуррентных соотношений. Сначала для удобства допишем к последовательности Фибоначчи слева единицу: тогда четные члены будут иметь номера, делящиеся на 3. Обозначим последовательность Фибоначчи за a[n], а за b[n] подпоследовательность четных членов: b[n] = a[3 * n]. Тогда нам нужно для некоторого N найти сумму S[N] = b[1] + b[2] + b[3] +… + b[N]. Можно заметить и доказать соотношение b[n+2] = b[n] + 4 * b[n+1]. На этом, в принципе, можно остановиться — просто просуммировать b[n] в цикле. Но также можно заметить, что S[n] = (b[n] + b[n+1] — 2) / 4, и тогда можно вычислять последовательность b[n], ничего не суммируя по ходу. Короче, решение на языке калькулятора bc:
a = 0
b = 2
while (b < 4000000)
{
c = a + 4 * b
a = b
b = c
}
print (a + b — 2) / 4
quit
Ну и я тогда тоже приведу решение — в данном случае брут первой задачи. Вместо того чтобы вычитать то, что кратно 15, я воспользовался хеш-массивом в PHP, используя числа в качестве ключа и единицу в качестве значения. Кажется, никто не повторил этот трюк.
<?php $arr = array(); $result = 0; for ($i = 3; $i < 1000; $i += 3) $arr[$i] = 1; for ($i = 5; $i < 1000; $i += 5) $arr[$i] = 1; foreach ($arr as $a => $b) $result += $a; echo $result; ?>
Еду в отпуск, хотелось бы все задачи в виде одного документа иметь. Есть где такая подборка?
Вот такая вот неприятность случилась ((
Project Euler is offline.
Due to the discovery of a serious security issue a decision was made on Sunday 15 June 2014 to take down the website. The full extent of the issue is still being investigated but in an attempt to be as honest as possible to our members we must make you aware that we have reason to suspect that all or parts of the database may have compromised. Passwords at Project Euler are strongly encrypted using a one-way hash, but if you use the same password at other websites then it is strongly advised that you change it. We are extremely sorry for this inconvenience. At this time we can provide no more information and there is no indication when Project Euler will return.
Project Euler is offline.
Due to the discovery of a serious security issue a decision was made on Sunday 15 June 2014 to take down the website. The full extent of the issue is still being investigated but in an attempt to be as honest as possible to our members we must make you aware that we have reason to suspect that all or parts of the database may have compromised. Passwords at Project Euler are strongly encrypted using a one-way hash, but if you use the same password at other websites then it is strongly advised that you change it. We are extremely sorry for this inconvenience. At this time we can provide no more information and there is no indication when Project Euler will return.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Project Euler — решайте алгоритмические задачи и смотрите как это делали другие 30к участников на огромном количестве языков.