🇺🇦 Python Programming Сhallenges
1.04K subscribers
3 photos
2 files
63 links
Размышления на тему решения различных задач по спортивному программированию на Python и не только.
加入频道
Channel name was changed to «Python Programming Сhallenges»
Всем привет! Спортивное программирование — прекрасная дисциплина, чтобы улучшить ваши навыки в программировании и математике. Обычно все участники используют C/C ++/Java, но в последнее десятилетие мы видим, что растет число участников, которые используют Python. Этот канал я создал для того чтобы делится со всем миром идеями и мотивировать друг друга не забрасывать любимое дело, а именно решать задачи.
1 раз в неделю я постараюсь рассказывать полное или частичное решение задачи, а также некоторые уловки которые подходят для любых задач.
Все задачи и рассуждения будут исключительно используя ЯП Python!
Disclaimer: Я не являюсь профессионалом либо победителем спортивным олимпиад.
🇺🇦 Python Programming Сhallenges pinned «Всем привет! Спортивное программирование — прекрасная дисциплина, чтобы улучшить ваши навыки в программировании и математике. Обычно все участники используют C/C ++/Java, но в последнее десятилетие мы видим, что растет число участников, которые используют…»
Лауреат премии Тьюринга Эдсгер Дейкстра как-то заметил: "Глубоко ошибается тот, кто думает, что изделиями программистов являются программы, которые они пишут. Программист же обязан создавать заслуживающие доверия решения и представлять их в форме убедительных доводов, а текст написанной программы является лишь сопроводительным материалом, к которому эти доказательства применимы".
Я полностью с этим согласен, ведь мы так часто тонем в огромном количестве технологий, и фреймворков, что теряем навык - думать и решать задачи. Все что мы умеем это быстро искать нужную функцию или метод. SO в данном случае не всегда содержит правильное или оптимальное решения для Вас.

Своей же задачей я вижу, процесс разжигания пламени желания к решению разного рода задач используя самый понятный ЯП - Python.

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

P.S. Перед тем как читать решение задачи, я настоятельно рекомендую попробовать самостоятельно, перед тем как читать решение, а если Ваше решение более понятное или эффективное обязательно напишите мне!
2 недели назад в почтовой рассылке Python-ideas (https://mail.python.org/mailman/listinfo/python-ideas) Сергей Сторчака - Python Core Dev, предложил добавить imath модуль в Python, предназначенный для работы с целыми числами.
А именно добавить такие функции как:
factorial(n)

gcd(n, m)

as_integer_ration(x)

binom(n, k)

sqrt(n)

isprime(n)

primes()

Мне эта идея кажется очень интересной и ее уже поддержало достаточное кол-во разработчиков Python.
Кстати в пакете math/big в Go есть также некоторые похожие функции:
math/big/#Int.GCD и math/big/#Int.Binomial.
"Каждый день мы используем числа, чтобы прогнозировать погоду, определять время, считать деньги… С помощью математики мы можем анализировать преступления, выявлять закономерности, предсказывать поведение… Используя числа, мы можем решить величайшие загадки".

Кто знает из какого сериала это цитата?

P.S. в далеком 2007 это был мой любимый сериал, кстати на сайте wolfram.com есть целый раздел в котором рассказывают, какие разделы математики изспользовались в каждой серии :)

Как часто вы используете математику в работе и/или имеет ли смысл ей заниматься?
Как быстро читать входные данные на Python и конвертировать в int()

Недавно я решал задачу (UVa 10013 - Super long sums), и там я наткнулся на ситуацию, где нужно было максимально быстро читать входные данные.

Т.е о чем речь? Необходимо читать данные из стандартного потока ввода stdin и конвертировать в int/float или что-то еще.
https://asoldatenko.com/fast-way-to-get-input-python.html
Рекурсия :)
Слайды моего доклада на OdessaPY'18 - https://goo.gl/ZjY8JP
Там можно найти несколько полезных ссылок и книг)
Всем привет!
15-16 февраля 2019 года пройдет PyConBelarus, мы уже начали принимать заявки на доклады и активно ищем новых спикеров :)
Если вы думаете подать доклад или это ваша первая заявка можно написать мне, я подскажу как это сделать более эффективно (telegram/twitter @a_soldatenko)
https://www.papercall.io/pyconby
https://by.pycon.org/