ProjectEuler: игра-песочница для программистов
Примерно месяц назад во время изучения мной языков LISP и Ruby, один мой знакомый подкинул занятную штуку (сам он изучал F#):
http://projecteuler.net
Суть в следующем: у нас имеется N-ое число математических проблем, как то вычисление 10001 простого числа, нахождение количества путей в сетке 20*20, подсчитать сумму цифр в числе 2^1000 и т.д. Проблемы нужно решать, причём без разницы каким образом ты это делаешь. Без разницы, на каком языке, на какой машине. Хоть руками считай на бумажке, хоть на мэйнфрейме запускай. Полная свобода действий. Главное - получить верный ответ. Собственно далее вводим ответ и проверяем решение. Система выдаёт верно ли решена задача.
Но самое интересное в этой бодяге - это система достижений. Во-первых мы зарабтываем уровень за решение задач. Во-вторых там есть занятные достижения, например решить первые 12 проблем с номерами-простыми числами, или решить 10 проблем подряд. Как-то всё же стимулирует и появляется некий азарт.
Подобные системы вроде как есть(сам я не проверял), но мой знакомый сказал что из всех что он видел - этот сервис самый прикольный.
В общем, если кто хочет изучить какой-то язык программирования, то эта "игра" для этого идеально подходит. Я например, теперь когда на работу прихожу, вместо того чтобы посещать форумы, решаю пару задач с этого сайта (кода минут на 10-20). Как бы и тренировка для мозгов и заодно вникнуть с утра в программирование.
P.S. Сервис требует регистрации.
- 31 декабря 2011, 11:37
- 08
Пост не в тему - раз. Знал про такие проекты - два.
Но все равно спасибо - три :-)
В каком смысле "не в тему"?
Я его спецом тегом "другое" пометил, чтоб он попал туда же, где всякий хлам.
Ну он как бы не про игры же ж.
С Новым годом, кстати :-)
Ну он как бы не совсем не про игры и как бы я его поместил как бы специально в раздел как бы "другое". И как бы к чёрту Новый год.
Как бы, Сайнт все правильно сделал. И это круто. )
Так я ж ничего, даже поблагодарил :-)
Очень вовремя ссылочка.
Сегодня, наконец, решил первую задачку, написав первую в жизни самостоятельную и осмысленную программу.
Сначала «проектирование» — нет, чтобы простым перебором проверять числа на кратность 3 и 5, нет... Надо было вымудриться с делением 1000 на 3, 5 и 15, потом найти сумму первых n (n — результат деления) членов арифметической прогрессии с a1=1, d=1, потом сложить первые два результата и вычесть третий.
Потом надо было этот алгоритм накодить... на ассемблере. 16-битным приложением под MS-DOS. Гуглинг, кодинг, ассембленг, дебаггинг, матюгинг... Команды сопроцессора, вывод чисел на консоль.
Черт, это такая эйфория была, когда программка заработала и результат подошел! Для тех, кому любопытно: код на Pastebin
Ассемблер явно не турбо
Истинно так :-).
Ассемблировал FASM'ом, потому как MASM даже с пятого раза отказывался это делать. Скопировал в FASM, удалил ненужные директивы — вуаля. Теперь никаких детищ майкрософта, не-не. Я не такой хардкорщик, гораздо приятнее нажать одну кнопку в редакторе кода, чем с гребаной командной строкой мучиться.
А Turbo Debugger потому, что он единственный показал мне работу сопроцессора.
Ну про майкрософт ты так с плеча не руби
А чего?
Я же не про все детища — с виндовса слезать не хочу, ибо игры, тот же офис, тот же скайп...
Я про средства разработки
Время покажет-с.
Кстати, помогите, пожалуйста, перевести следущую фразу, не очень понятно значение слова even-valued:
имеются в виду те члены последовательности, которые имеют чётные значения.
"Even-valued" - "чётные". Требуется найти сумму всех чётных членов последовательности Фибоначчи, меньших 4'000'000.
не, тут следует уточнить, что не с чётными порядковыми номерами, а именно с чётными значениями.
Точно, есть двусмысленность. Спасибо.
Спасибо большое :-)
Сам думал, что even-valued — это четные, однако гуглтранслейт и английская википедия ничего такого не думали. Странно.
А при чем тут скайп? Он и на линуксе норм работает.
Ну компания-разработчик Скайпа была не так уж и давно куплена майкрософтом, только и всего.
Ох, не так и норм =.= Правда, в 90% случаев всё же тянет.
Не сразу понял причём тут Ms-Dos. |D