Все потоки
Поиск
Написать публикацию
Обновить
35.17
CodeAbbey
Веб-сайт с задачами по программированию
Сначала показывать

Простота и Гласность

Время на прочтение1 мин
Количество просмотров413

В именах Masha, Rodion и Ekaterina насчитываем 2, 3 и 5 гласных букв — это всё простые числа. Гласными в рамках этой задачи считаются aouie, без y (хотя это дискриминация).

Представьте, даны две строки одинаковой длины, например abbas и abzac — они задают некий диапазон всевозможных строк (этой же длины) в алфавитном порядке:

abbas, abbat, ..., abyzz, abzaa, abzab, abzac

Сколько в этом диапазоне строк, имеющих «простое» количество гласных? Тут даже ребёнок легко сосчитает — всего 7289:)

А как посчитать если ограничение на длину строки — до 150 символов? Приглашаем попробовать новую задачу на CodeAbbey от Клайва Фрэйзера: Prime Vowel Count — она хороша тем что демонстрирует довольно общий подход к целому классу подобных задач (не обязательно даже про строки).

Читать далее нечего

Конкатенация чисел и делимость на 13 — задачка от Клайва Фрэйзера

Время на прочтение3 мин
Количество просмотров963

Дан массив с числами, в десятичном представлении - из них можно удалить какие-то, а то что осталось конкатенировать. Для N чисел это даёт 2^N-1 возможных результатов (нельзя удалить все числа) - и нам интересно сколько из этих результатов делятся нацело на 13.

Для маленьких массивов можно написать простой перебор, но автор предлагает N=400000 - у одного из пользователей это сразу вызвало реакцию "2 в степени 400000 - это невозможно перебрать". Действительно, перебором тут не справиться :)

Задача тут - а под катом, поскольку о ней самой уже говорить нечего, я немножко расскажу про автора - это довольно любопытно (и может когда-то я смогу более подробный пост о нём сделать если получу от него самого больше информации).

Таинственный Незнакомец...

Нужен ли код в книге Занимательных Задач по программированию?

Время на прочтение11 мин
Количество просмотров1.6K

Мы с детства знакомы с книжками "Занимательных Задач" - чаще всего, наверное, по математике и быть может физике - но существуют они и во многих других отраслях знаний, вплоть до географии и биологии.

А как же наш любимый программизьм? :) Мне известно не так много примеров. Зачем вообще программисту задачи? Для начинающего актуально, конечно, на них "нарабатывать практику" (или когда уже не новичок но осваивает новый для себя язык программирования) - но не только это. Задачки кроме того дают идеи. Программисты же народ творческий и хотя бы подсознательно постоянно в поиске идей.

Когда на сайте у меня количество задач перевалило за 400, пришло на ум что можно их собрать под одной обложкой - для любителей поразмышлять в отрыве от компьютера. Идея эта однако встала на паузу - но недавно мне о ней напомнили. Коллега с Хабра предположил возможность издания подобной книжки на русском языке.

Один из вопросов по которому мы не нашли пока консенсуса - размещение в подобной книжке "решений". Поэтому обращаюсь за помощью к общественности, к коллегам-айтишникам в первую очередь - ниже будет немного подробностей и примеров задач, по разделам - и опрос, насчет того в каком виде нужны (или не нужны) эти самые решения.

Что ж, давайте посмотрим...

Задачки на Verilog — новый раздел на сайте

Время на прочтение3 мин
Количество просмотров2.8K

Программируемая Логика - увлекательный и своеобразный мир - к сожалению среди большинства из нас, знатоков Python, JS, Go, Java, C++ да и среди любителей Arduino и прочих микроконтроллеров она не так широко "распростирает свои руки".

Давно хотелось среди задачек и головоломок на "обычное" программирование внедрить на сайте и горстку упражнений из этой таинственной области. Мешало банальное отсутствие собственного опыта в ней (за исключением нескольких занятий по AHDL в далёкие вузовские годы).

Мотивация (или везение?) пришло с очередной новой работой - хотя она не связана с PLD/FPGA, но в моей текущей компании эти направления значительно развиты, есть и знатоки - которые подсказали кое-что по инструментам, по выбору языка - а заодно показали и репозиторий с "домашками" от их собственного курса... Я засучил рукава, добавил компилятор в "песочницу" и вот уже первые несколько заданий ждут энтузиастов :) Также ждём знатоков которые захотят помочь с идеями новых задач и верификацией существующих. Итак, переходим к подробностям...

Итак, к подробностям!

Закладки для Задач — и мысли вслух

Время на прочтение4 мин
Количество просмотров662

Недавно один из пользователей попросил добавить эту мелкую фичу. Как обычно, дольше размышлять чем делать... Некоторые из посетивших мыслей решил записать в маленькую статью, в качестве пояснения/сопровождения к коммиту в гитхабе. Ну и без бага не обошлось - глупо, но поучительно :)

(не рассматривайте эту статью в качестве поучения "как надо писать" - код несколько архаичен и коряв, и реализация на KV таблице может выглядеть спорно)

Читать далее

Игра «Виселица» — интерактивная задачка c HTTP-запросами

Время на прочтение4 мин
Количество просмотров1.4K

«Виселицу» — популярную игру на угадывание слов — кто‑то упомянул в комментариях к предыдущему посту, о задаче про игру в «Гонки». Не очень в тему, конечно — но я подумал «а чего это у нас задачи про виселицу нет?»

Теперь есть!

Обычно под программированием этой игры подразумевается написать код который загадывает слово — а пользователь предлагает буквы (и это пользователь будет повешен в случае неудачи). Здесь же наоборот — нужно написать программу которая угадывает слово по правилам данной игры. И теперь уже программист старается избежать «повешенья».

Задача интерактивная — сервер загадывает слово — а наша программа должна HTTP‑запросами предлагать ему буквы и смотреть что получается. Я покажу как можно «поиграть» вручную прямо из командной строки, используя curl но сдать задачу «вручную» не получится, поскольку присутствует ограничение по времени — так что без программы не обойтись.

Что ж, покажите, посмотрим...

Пошаговая Formula 1 — игра/задачка на программирование

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2.3K

Среди игр на тетрадном листочке из школьной поры была такая Гонки — вы тоже помните? На удивление, похожую игру предлагает в своей старинной книжке Жак Арсак — машина «в пошаговом режиме» мчится по извилистой трассе на целочисленной плоскости — и нужно варьируя вектор скорости умудриться не вылететь — но и доехать не черепашьим шагом.

Задача на основе этой игры добавлена на сайт к новогодним праздникам — вдруг кто‑то устанет от оливье раньше времени :-) Здесь в качестве входных данных вы получаете описание профиля всей трассы целиком — и нужно предложить последовательность ходов которые позволят безопасно проехать весь маршрут притом со средней скоростью не хуже 3 клеток за ход (считая только продольную компоненту скорости).

Чтобы легче было понять принцип (вдруг кто‑то не играл в детстве) — добавлена небольшая демонстрашка, в которой можно управлять прохождением по трассе кликая или тапая в нужные участки экрана.

Честно говоря планировалось что в задаче будет спрашиваться наиболее быстрый маршрут — но составляя её я немного усомнился в собственном решении — поэтому она стала чуточку проще.

Конечно, из‑за того что вся трасса видна сразу, отсутствует интрига — но на днях планируется добавить версию игры в которой нужно играть против HTTP‑сервера — и там «видимость» трассы будет ограниченной, так что если не хватает интриги — просто чуть‑чуть подождите :-)

Кажется, дальше читать нечего

5 задач на взлом шифров

Время на прочтение4 мин
Количество просмотров3.4K

Известна зловещая история о том, как Мария Стюарт лишилась головы из‑за одноподстановочного шифра — задолго до вымышленных баек про «Золотого Жука» или «Пляшущих Человечков». Нынче подобные шифры вызывают снисходительную улыбку даже у школьников — чтобы расшифровать их, обычно и компьютер‑то не требуется.

У нас на CodeAbbey с годами накопились и такие задачки на расшифровку, которые требуют чуть больше мозговых усилий. Они полезны и как беглый экскурс в основы криптографии — и могут послужить развлечением в предстоящие длинные выходные.

Цезарь, Виженер, Потоковый, RSA, Плейфер

Белый Прямоугольник (классическая задачка вместо приветствия)

Время на прочтение2 мин
Количество просмотров2.2K

Оказывается Хабр доброжелательно предоставляет возможность завести бесплатный «корпоративный» блог для опенсорсного проекта. Какое‑то время назад я подал заявку — и недавно обнаружил что она была удовлетворена. Начинать программисты любят с «тестового» поста, но т.к. речь идёт о публичном пространстве, пусть он будет хоть немного содержательным:)

На сайт CodeAbbey сегодня добавилась задачка про поиск Белого Прямоугольника. Речь идёт о матрице в которой есть чёрные и белые клетки — расставленные достаточно хаотично — и хочется найти прямоугольник без чёрных клеток максимальной площади (со сторонами параллельными сторонам матрицы, конечно).

Про сам сайт мы ещё расскажем в отдельно (иначе зачем блог было заводить) — а сейчас всё же про саму задачку.

И что там про задачку?

Информация

Сайт
www.codeabbey.com
Дата регистрации
Дата основания
Численность
1 человек (только я)
Представитель
Родион Горковенко