Посты с тэгом спортивное программирование


Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения


Регулярные выражения в Python от простого к сложному



Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прям


Kaggle и Titanic — еще одно решение задачи с помощью Python


Хочу поделиться опытом работы с задачей известного конкурса по машинному обучению от Kaggle. Этот конкурс позиционируется как конкурс для начинающих, а у меня как раз не было почти никакого практического опыта в этой области. Я немного знал теорию, но с реальными данными дела почти не имел и с питоном плотно не работал. В итоге, потратив пару предновогодних вечеров, набрал 0.80383 (первая четверть рейтинга).



В общем эта статья для еще начинающих от уже начавшего.

Читать дальше →


Kaggle и Titanic — еще одно решение задачи с помощью Python


Хочу поделиться опытом работы с задачей известного конкурса по машинному обучению от Kaggle. Этот конкурс позиционируется как конкурс для начинающих, а у меня как раз не было почти никакого практического опыта в этой области. Я немного знал теорию, но с реальными данными дела почти не имел и с питоном плотно не работал. В итоге, потратив пару предновогодних вечеров, набрал 0.80383 (первая четверть рейтинга).



В общем эта статья для еще начинающих от уже начавшего.

Читать дальше →


[Из песочницы] Алгоритм поиска пути в лабиринте и его реализация на Python 3.4


Недавно для решения задачи о прохождении лабиринта, которых, кстати, не мало, я решил воспользоваться «волновым алгоритмом», о котором ранее мне приходилось слышать. К моему сожаления, найти внятное объяснение его работы с примерами реализации на нужном мне языке не получилось, следствием чего является эта статья.

Итак, будем пытаться написать его самостоятельно, а для этого нужно продумать, как он должен работать. Для этого возьмём достаточно легкую задачу:
Читать дальше →


Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в степень


Пусть мы хотим вычислить десятимиллионное число Фибоначчи программой на Python. Функция, использующая тривиальный алгоритм, на моём компьютере будет производить вычисления более 25 минут. Но если применить к функции специальный оптимизирующий декоратор, функция вычислит ответ всего за 18 секунд (в 85 раз быстрее):


Дело в том, что перед выполнением программы интерпретатор Python компилирует все её части в специальный байт-код. Используя метод, описанный хабрапользователем SkidanovAlex, данный декоратор анализирует получившийся байт-код функции и пытается оптимизировать применяющийся там алгоритм. Далее вы увидите, что эта оптимизация может ускорять программу не в определённое кол


Результаты Djangodash 2012

Итак, оглашены результаты Djangodash 2012. 48 активных команд, 48 часов и 6873 коммита, а победителями стали:

Первое место команда BUSI-TEC Industries с проектом Busitizer (демо). Приложение добавляет Гарри Бузи в фотографии в Facebook.

Второе место команда UFO с проектом EasyNotice (демо). Приложение выводит фотки из instagram, flickr и google картинок существующих чудес свет в сгруппированном виде.

Третье место — WebRiders с проектом