Информатика

О проекте Эйлер

эйлер.jpg
Леонард Эйлер (1707–1783) — математик, механик, физик и астроном

Что такое проект Эйлер?

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

Мотивация для запуска проекта Эйлера и его продолжения состоит в том, чтобы предоставить платформу для пытливого ума, чтобы погрузиться в незнакомые области и изучить новые концепции в веселом и развлекательном контексте.

На кого направлены эти проблемы?

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

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

Может ли кто-нибудь решить эти проблемы?

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

Все задания решены при помощи языка программирования Python. Рассмотрим некоторые задачи.

Задание  1 (1)

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

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

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

Решение:

def compute():

ans = sum(x for x in range(1000) if (x % 3 == 0 or x % 5 == 0))

return str(ans)

if __name__ == «__main__»:

print(compute())

Ответ: 233168

Задание 2 (2)

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

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

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

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

Решение:

f1, f2, s = 0, 1, 0

while f2 <= 4000000:

s = s + f2 if f2 % 2 == 0 else s

f1, f2 = f2, f1 + f2

print(s)

Ответ: 4613732

Задание 3 (4)

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

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

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

Решение:

def compute():

ans = max(i * j

for i in range(100, 1000)

for j in range(100, 1000)

if str(i * j) == str(i * j)[ : : -1])

return str(ans)

if __name__ == «__main__»:

print(compute())

Ответ: 906609

Сайт использует файлы cookies и сервис сбора технических данных его посетителей.
Продолжая использовать данный ресурс, вы автоматически соглашаетесь с использованием данных технологий.
Закрыть