Грокаем Алгоритмы - Адитья Бхаргава


Полное название: Грокаем Алгоритмы. Иллюстрированное пособие для программистов и любопытствующих.
Год: 2017
Язык программирования: Python 2 - но это вообще никакой роли не играет.

Ознакомиться с этой книгой меня заставило любопытство и интерес к программированию. Было бы как-то странно начать учить язык без базового понятия о том как создаются алгоритмы.

Zloi Password Generator v. 1.0



Всё, дописал свою версию генератора паролей на Python. Он умеет генерировать три вида паролей:

Злой Генератор Паролей - Zloi-Pass-Gen v.0.1


Я захотел написать свой генератор паролей. Начал с маленького... пароли состоящие только из цифр.

Что мне было интересно реализовать:
1 - Длину (абсолютно любую) пароля должен задавать пользователь.
2 - Задать функцию которая будет генерировать пароль.
3 - Вывод строки (готовый пароль) без скобок и запятых.
4 - Предложить пользователю изменить длину пароля или сам пароль

Проект Эйлера - Задача 6

Разность между суммой квадратов и квадратом суммы

Сумма квадратов первых десяти натуральных чисел равна
12 + 22 + ... + 102 = 385

Квадрат суммы первых десяти натуральных чисел равен
(1 + 2 + ... + 10)2 = 552 = 3025

Следовательно, разность между суммой квадратов и квадратом суммы первых десяти натуральных чисел составляет 3025 − 385 = 2640.

Найдите разность между суммой квадратов и квадратом суммы первых ста натуральных чисел.

Моё решение на Python:

Алгоритм Бинарного Поиска на Python


О том что это такое можно почитать вот ЗДЕСЬ. Мой пост о самом алгоритме. Мне было интересно написать и проверить этот алгоритм. Это алгоритм поиска, прикол в том, что если мы увеличиваем наш список вдвое, то количество поисковых запросов увеличивается  на 1.

Длина списка 20 - макс. кол. запросов 4
Длина списка 40 - макс. кол. запросов 5
Длина списка 80 - макс. кол. запросов 6
И так далее...

Получается, что абсолютно не важно как много номеров в вашей телефонной книге, ваш телефончик моментально всё найдёт.

Проект Эйлера - Задача 4



Наибольшее произведение-палиндром

Число-палиндром с обеих сторон (справа налево и слева направо) читается одинаково. Самое большое число-палиндром, полученное умножением двух двузначных чисел – 9009 = 91 × 99.

Найдите самый большой палиндром, полученный умножением двух трехзначных чисел.

Моё решение (Python) под катом:

Проект Эйлера - Задача 3


Наибольший простой делитель

Простые делители числа 13195 - это 5, 7, 13 и 29.
Каков самый большой делитель числа 600851475143, являющийся простым числом?

Моё решение (Python) под катом:

CSS это просто круто


Я так много времени боялся этих 3-х букв. Ужас просто... на эти "коды" было страшно смотреть, я ничего в них не понимал и никто не мог помочь... с тех пор прошло больше 10-и лет :)

И вот настал тот момент когда именно CSS мне помог решить мою проблему... и я был просто поражен на сколько это удобно и просто.

Проект Эйлера - Задача 2


Четные числа Фибоначчи

Каждый следующий элемент ряда Фибоначчи получается при сложении двух предыдущих. Начиная с 1 и 2, первые 11 элементов будут:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

Найдите сумму всех четных элементов ряда Фибоначчи, которые не превышают четыре миллиона.

Моё решение (Python) под катом:

Проект Эйлера - Задача 1


Числа, кратные 3 или 5

Если выписать все натуральные числа меньше 10, кратные 3 или 5, то получим 3, 5, 6 и 9. Сумма этих чисел равна 23.

Найдите сумму всех чисел меньше 1000, кратных 3 или 5.

Моё решение (Python) под катом: