Пишем функцию для поиска простых чисел и поэтапно оптимизируем её в двух направлениях.
Дата отправки отчёта:
8 августа 2016 г.
Задание выполнено: за
3 час. 10 мин.
Чему научился:
Практиковался с алгоритмами поиска простых чисел, реализовал "решето Эратосфена", повторил работу с модульными тестами.
Что было сложным:
Сложностей не было, в основном мелкие ошибки типов данных и границ поиска.
Комментарии:
Проверку функций реализовал с помощью модульных тестов библиотеки boost. Опробовал создание функций isPrime* через некое подобие TDD. Поначалу было трудно привыкнуть, но в итоге понравилось, больше уверенности в работоспособности своего кода.
Выполнил проверку скорости работы функций, как было предложено в уроке, за определенное время: странно, функция isPrimeSqrtP оказалась медленнее, чем ожидалось. Реализовал алгоритм "решето Эратосфена", для ее проверки выбрал другой способ: задаю максимальное число и засекаю время выполнения функций. Результат удивил, алгоритм Эратосфена и isPrimeSqrtP проиграли по времени isPrimeSqrt3. При бОльших границах интервала поиска отставание уменьшается, я полагаю проблема в реализации алгоритма.
Урок понравился, поработал с консолью, тестами, оптимизацией, реализацией алгоритма. Спасибо!:)
Научился: Я научился оптимизировать алгоритм поиска простых чисел Ура! -1 Курс! Yay^^ :~)
Спасибо за данный курс, для меня он был очень полезным. Надо пройти алгоритмику теперь :~)
Научился: Научился оптимизировать алгоритмы поиска простых чисел (исключение чисел кратных 2, 3, уменьшение верхней границы до половины и корня из искомого числа). Научился тестировать реализованные алгоритмы. Узнал алгоритм "Решето Эратосфена" для поиска простых чисел. нет