Продолжаем учиться программированию. После второй главы в книге: Майкл Доусон “Программируем на Python”, 2014 (Michael Dawson “Python Programming for the Absolute Beginner”, 3rd Edition), где я изучила особенности работы с текстом в языке программирования Python, предложены задания. Давайте выполнять их вместе. Я приведу свой вариант решения, а вы пишите ваши варианты в комментариях.
Архив метки: Задачи
Задача о путешествии шахматного коня
Задача о ходе коня — задача о нахождении маршрута шахматного коня, проходящего через все поля доски по одному разу.
Эта задача известна по крайней мере с XVIII века. Леонард Эйлер посвятил ей большую работу «Решение одного любопытного вопроса, который, кажется, не подчиняется никакому исследованию» (датируется 26 апреля 1757 года).
Поиск первого вхождение подстроки. Решение в лоб.
Алгоритм Кнута-Морриса-Пратта (КМП)
Алгоритм был разработан Кнутом (Knuth) и Праттом (Pratt) и независимо от них Моррисом (Morris) в 1977 г.
Он относится к «правильным» подходам решения поставленной задачи, в отличии от тривиального подхода, рассмотренного ранее.
Данный подход хоть и считается достаточно тривиальным, описания, которые нашел я, зачастую пестрят математическими основами и доказательствами, которые сбивают с сути. Так в книге, уважаемого Никлауса Вирта, приводится описание, которое я так и не одолел.
Однако я нашел пару статей, которые достаточно информативны, они приведены в ссылках и рекомендуемы для ознакомления.
Установка целей на год: главные ошибки

Начало года – самое подходящее время поставить перед собой цели и дать себе некоторые обещания. В это время люди чувствуют себя полными сил и способными изменить свою жизнь к лучшему. Главное, не допускать распространенных ошибок при установки целей на год. Например таких, как:
Отсутствие чувства меры
Не слишком ли вы жадничаете с целями? Вы обещаете себе похудеть, выучить несколько языков, заняться конным спортом, прыгнуть с парашютом, написать книгу, но хватит ли у вас времени на все это? Если вы поставите перед собой слишком много крупных задач, вы будете на протяжение года бросаться то на одну, то на другую, и в итоге не справитесь ни с одной из них. Оптимальный вариант – это три крупные задачи и меньше десятка более мелких задач.
Отсутствие личной заинтересованности
Почему вы поставили перед собой именно эти цели? Что они значат для вас? Что вы почувствуете, когда их достигнете? Если ваши ответы сформулированы нечетко, вы, вероятно, не слишком сильно хотите добиться намеченного и в связи с этим у вас могут возникнуть проблемы с мотивацией. Для того, чтобы она не покидала вас круглый год, вы должны очень сильно желать достижения своих целей, только тогда вам хватит сил на все 365 дней. Будьте кристально чисты, давая себе обещания в начале года. Думайте над каждым из них: действительно ли стоит тратить на него время и усилия? Если нет, откажитесь, потому что тогда оно в любом случае будет забыто вами уже через неделю.
Отсутствие списка
Для того, чтобы четко представлять свои цели и пути их достижения у себя в голове, вы должны видеть их перед собой. В этом вам помогут карандаш и лист бумаги. Если вы никогда не пробовали составлять список своих целей, сделайте это немедленно! Скорее всего, вы не сможете записать все свои мысли за один раз. Почему? Потому что большинство ваших целей и желаний пока всего лишь расплывчатые идеи, которые нужно сформулировать для перенесения на бумагу. Как только вы сделаете это, вы значительно приблизитесь к их осуществлению. Стремиться к чему-то конкретному всегда легче. Неясные цели влекут за собою такие же неясные результаты. Также, составляя список, вы вряд ли станете вписывать туда миллион мелких задач, которые крутятся в вашей голове, таким образом, все незначительное отсеется само собой.
Отсутствие напоминаний
Даже если вы потратите кучу времени на составление списка, где будут четко сформулированы все ваши цели, через месяц вы можете и не вспомнить о нем. Люди – забывчивые существа. В избежание этого, поместите этот список туда, где он будет постоянно попадаться вам на глаза. Конечно место под магнитом на холодильнике – вне конкуренции.
Отсутствие постоянного анализа ваших достижений
Помимо того, что вы постоянно должны иметь перед глазами напоминание о ваших целях, вы должны отслеживать результаты их достижения. Зачем? Пилотам самолета приходится периодически проверять и корректировать траекторию полета, в силу изменения различных факторов, например таких как погодные условия. Так и с поставленными целями. Если что-то пошло не по вашим планам, глупо продолжать следовать им. Постоянная проверка и коррекция ваших задач поможет вам четко держаться выбранного курса.
Отсутствие ответственности перед другими
Вы знаете, почему люди обычно стараются держать свои обещания? Потому что они боятся, что не выполнив их, они кого-то разочаруют. После того, как вы составите список ваших целей на год, объявите его вашим близким и родственникам. Пусть все знают, какие обещания вы себе дали, таким образом вы возьмете на себя чувство ответственности.
Отсутствие группы поддержки
Достижения поставленных целей – не должно быть сугубо вашим личным индивидуальным делом. Поддержка вашей семьи и близких даст вам гораздо больше шансов на успех. Например, если вы решили похудеть и поделились с этим со своей матерью, она уже не будет пичкать вас пирожками с вареньем каждый день. Поговорите с близкими людьми, расскажите чего вы хотите достичь, и вы увидите, что они помогут вам.
Фото:Leonie²
20 вопросов, которые вы должны задать себе в конце года

С Новым Годом!
Конец года – идеальное время для анализа своей жизни. Это поможет вам понять, к чему стремиться в следующем году, какие задачи перед собой ставить? Проанализируйте 4 главных аспекта:
- Материальное благополучие
- Духовное благополучие
- Физическое благополучие
- Социальное благополучие
Эти четыре аспекта дадут вам полную картину того, насколько вперед вы продвинулись за прошедший год. Каждый из них содержит несколько вопросов. Будьте честными, отвечайте искренне. Старайтесь не просто давать ответы, но еще и думать над причинами.
Например, возьмем вопрос: ”Вы достигли желаемого?”
Если ваш ответ нет, спросите себя: ”Почему?” Возможно, у вас было недостаточно времени, а может быть вам не хватило на это материальных средств?
Итак, 20 вопросов, которые помогут вам проанализировать прошедший год:
1. Материальное благополучие
- Вы достигли желаемого?
- Вас устраивает ваш уровень доходов?
- Вы обзавелись привычкой тратить меньше, чем зарабатываете?
- Вы избавились от долгов?
- Вы научились экономить?
- Ваша карьера развивается так, как вам этого хотелось бы?
- Вы сократили расходы?
2. Духовное благополучие
- Вы определили свою миссию в жизни?
- Вы удовлетворены вашей жизнью?
- Вы счастливы?
- Вы выросли духовно?
3. Физическое благополучие
- Вы занимаетесь спортом?
- Вы перешли на здоровое питание?
- Достаточно ли вы отдыхали в этом году?
- Выполняете ли вы физические упражнения ежедневно?
4. Социальное благополучие
- Настолько ли хороши ваши отношения со второй половиной, насколько бы вы этого хотели?
- Настолько ли хороши ваши отношения с семьей, насколько бы вы этого хотели?
- Настолько ли хороши ваши отношения с друзьями, насколько бы вы этого хотели?
- Вы обзавелись новыми друзьями?
- Вы разнообразили круг ваших знакомств?
Конечно, вопросы перечисленные здесь не всеобъемлющи, но они могут дать вам несколько идей на тему того, в каком направление вам двигаться дальше.
Кроме того они помогут вам определить, какие аспекты требуют особого внимания и какие меры вы должны предпринять.
Например, если на вопрос занимаетесь ли вы спортом, вы ответили отрицательно, позаботьтесь о том, чтобы это исправить. Если за год вы не разнообразили ваш круг общения, познакомьтесь с новыми людьми, чей образ жизни отличается от вашего. Если вы до сих пор не нашли свою жизненную миссию, сосредоточьтесь на ее поиске.
Затем определите приоритетность задач, которые вы должны решить за год и начинайте действовать. Ваша главная цель – хороший, сбалансированный прогресс во всех четырех аспектах.
Еще раз с праздником и удачи!
Фото:Looteyaa*


