Псевдоним: Alex_soldier
Реальное имя: Алексей (фамилия и отчество не разглашаются)
Страна, город: Россия, Москва
Род деятельности:
- Контекстная реклама (Яндекс.Директ)
- Консалтинговые и аудиторские услуги в web-маркетинге
- Корпоративное и индивидуальное обучение специалистов
- Преподавательская деятельность в ВУЗе
- Руководство дипломными проектами студентов
- Ведение тематических рассылок
- WEB-дизайн (некоммерческие проекты)
Регалии и достижения:
- Кандидат технических наук
- Преподаватель ВУЗа с 19-летним стажем (доцент)
- Научный руководитель более 200 дипломных проектов
- Начал заниматься web-сайтами и интернет-маркетингом в 1997 году
- Эксперт по продвижению сайтов (SEO) с 2005 года
- Опытный специалист по системе Google AdWords
- Ведущий специалист по системе Яндекс.Директ
- Эксперт официального Клуба Яндекс.Директ
- Автор информационно-справочного ресурса по Яндекс.Директ
- Автор обучающих курсов по Яндекс.Директ
- Коуч по Яндекс.Директ (подготовлено более 20 специалистов)
- 5 благодарностей от Службы поддержки Яндекса за активную помощь рекламодателям на Форуме и в Клубе: по итогам 2009, 2011, 2012, 2013, 2014 годов
Личные web-сайты:
Контакты: Alex_soldier@mail.ru
О себе:
Сейчас уже точно не вспомню, когда я узнал о простых числах и начал интересоваться их поиском.
Вероятно, это было в начальной школе - как раз в это время стали появляться доступные карманные калькуляторы.
Простые числа до 100 я запомнил довольно быстро, а вот более крупные (до 1.000 - 2.000) ради интереса частенько проверял путем проверки делимости на малые простые.
Про то, что перебирать делители нужно не более чем до квадратного корня, как-то догадался сам после некоторых наблюдений и раздумий.
Как-то раз в старом журнале «Наука и Жизнь» начала 80-х наткнулся на упоминание рекорда в области простых чисел, если не ошибаюсь - 2^86.243 -1.
Тогда я не знал, что это число Мерсенна, и что найдено оно было с помощью специального теста.
Просто порадовался за энтузиазм неизвестного открывателя и отдал дань уважения его титаническим усилиям.
Ну а у меня доступ к языкам программирования и компьютерам появился только к 8-му классу, когда я перешел учиться в Лицей.
Там нас регулярно, раз в неделю, вывозили в институт для проведения уроков ОИВТ в компьютерных аудиториях.
Первую программу по поиску простых чисел я написал на языке Basic годом раньше.
Прочитал книжку про этот язык, выучил основные команды, и записал код программы в блокнотик.
Когда представилась возможность, набил его на клавиатуре и запустил на исполнение.
Алгоритм был простейший - двойной цикл.
Первый перебирал все нечетные числа, начиная с заданного.
Второй шел по нечетным делителям с 3 до квадратного корня.
Ну и все найденные простые печатались на экран подряд через пробел.
Первые же результаты очень порадовали - буквально за несколько секунд экран покрылся числами и начал сдвигаться вверх, освобождая место все более крупным результатам, превышающим все проверяемые мной ранее вручную.
Второй запуск я совершил, переместив начальную точку в 1.000.000.
Числа здесь проверялись значительно дольше: на проверку каждого варианта уходило несколько секунд (неоптимизированный алгоритм & советские компьютеры ИСКРА-1031).
Но скоро любопытство было удовлетворено, и я отложил дальнейшие изыскания на несколько лет.
Новый всплеск интереса случился уже на 2-м курсе института.
К этому времени я освоил новый язык программирования Turbo-C и работал инженером в компьютерной аудитории ВУЗа.
Кроме того, у меня появился и домашний компьютер.
И вот тогда-то я капитально засел за написание программ по массовому поиску простых чисел.
Решил обрабатывать крупными партиями, просеивая за раз диапазон числового ряда длиною в миллион.
Первая версия программы (по сути тот же неоптимизированный двойной цикл) сформировала файл с 78.498 простыми числами первого миллиона за 15 минут.
Далее от версии к версии последовала череда улучшений и оптимизаций (алгоритм решета Эратосфена, проверка делимости только на простые делители, сегментирование массивов чисел в памяти, ...).
Девятая версия справлялась с той же задачей всего за 10 секунд!
В то время я был довольно сильно ограничен и объемом знаний о языке, и DOS-реализацией программ.
Максимальный прорыв, которого мне удалось достичь на тот момент - это увеличение верхней границы чисел в миллион раз (изначально была 2^32 -1).
Так что наибольшее обнаруженное мною тогда простое число было 4.294.967.295.999.977.
Позднее последовала череда программ для поиска простых чисел разных видов и в различных последовательностях.
Но никаких серьезных целей не преследовалось, программы создавались скорее ради развлечения.
Следующая волна активности была связана со средой Delphi и 64-битными WINDOWS-приложениями.
Увеличившийся вдвое целочисленный тип дал прямой доступ к гораздо большему диапазону доступных значений.
На текущий момент наибольшее найденное своими силами простое число 9.223.372.036.854.775.783.
На 4-м курсе института снова столкнулся с простыми числами.
На этот раз лектор, любивший рассказывать различные истории, поведал о рекорде в сфере простых чисел вида 2^p -1.
Позднее я узнал, что это числа Мерсенна, и что их ищет около 100.000 человек по всему миру в рамках проекта GIMPS.
В 2001-м году мне снова попалось упоминание об очередном рекорде, я даже заглянул на сайт проекта.
Но он был англоязычным, поэтому я просто порадовался и не стал принимать в нем участия.
А зря - тогда мне были доступны значительные вычислительные мощности (десятки компьютеров).
Впрочем, они итак не простаивали - в 2002-м я заинтересовался псевдопростыми числами, и активно искал их по модулю 2.
Все простые числа проходят тест (2^p -1) mod p = 1, но и некоторые составные тоже.
Причем есть семейство - числа Кармайкла, которые проходят этот тест при любом основании, не только при base = 2.
Но тогда я искал только по основанию 2, и нашел их несколько сотен или даже тысяч.
В 2006-м году прочитал в Компьютерре статью в 3 частях "Гонки по вертикали: Числа Ферма от Эйлера до наших дней. Начало. Продолжение. Окончание". Узнал о числах Ферма, и о проблеме поиска их делителей.
Особенно обрадовало, что один из основных проектов организовал наш соотечественник Леонид Дурман.
В начала 2000-х он написал довольно быструю программу и создал сайт FermatSearch.org
Возможно, именно это в итоге и склонило чашу весов - я присоединился к проекту, впервые начав использовать чужое ПО.
Леонид к тому времени отошел от дел, и сайтом занимался итальянец Луиджи Морелли (сайт уже был на 3 языках).
Зарезервировав себе слишком большой диапазон, я тихо считал его годами, разбивая на части и комбинирую на доступных компьютерах, делая перерывы.
В конце 2015-го оказалось, что уже существует более быстрое ПО для GPU (видеокарты) - mmff.exe, благодаря которому я добил остатки не за год, а за 3 дня!
К сожалению, мой диапазон уже оказался посчитан другим участником.
Но ничего - я зарезервировал новый, и в перерывах между другими расчетами все еще продолжаю поиск в своей экспоненте.
Подробности - см. отчет 0001
На Новогодних каникулах 2015-го снова нахлынули мысли о поиске рекордного простого числа.
Написал программку и стал просеивать диапазон (10^99.999.999 ; 10^99.999.999 + 10^9).
Программа считала неделю, после чего обнаружилась ошибка в больших делителях.
Исправил, пересчитал, но уже в феврале обнаружил, что у моего проверяемого миллиарда "отвалился хвост".
В итоге отложил до лучших времен.
Подробности - см. отчет 0002
А вот в феврале 2015-го я все-таки присоединился к GIMPS.
Из нескольких подающих признаки жизни русскоязычных команд выбрал GIMPS.Russia.
Все было довольно печально: сайт на многолетней реконструкции, нет контактов ни с кем из других участников.
В итоге за 3 ночи сделал сайт Команды (сейчас он по адресу Mersenne.ru) и стал ежедневно отмечать достижения участников - тогда это были редкие находки очередного делителя.
Год титанических усилий не прошел напрасно - удалось найти контакты многих участников, включая Основателя, привлечь сохранивших активность участников из других российских команд и пробудить некоторых "спящих" уже долгие месяцы и даже годы.
Сейчас мы активно тесним команды других стран и сообществ, и с боями пробиваемся к топовым позициям во многих рейтингах Проекта.
Подробности - см. отчет 0003
В планах на ближайшее будущее - поиск арифметических прогрессий из простых чисел, квадруплетов, и некоторых одиночных простых специального вида.
Также хочу попробовать свои силы в разложении RSA-чисел.
Возможно, осилю и собсвенное ПО: в перспективе хочу создать библиотеку для поддержки длинной арифметики и хотя бы простой PRP-тест.
Дальнейшие новости буду публиковать уже в отчетах по конкретному виду поиска!
Список опубликованных отчетов:
0001 (2006.03.26): Поиск делителей числа Ферма F78
0002 (2015.01.04): Поиск наименьшего 100.000.000-значного простого числа
0003 (2015.02.09): Поиск простого числа Мерсенна и делителей составных
0004 (2015.06.27): Поиск AP20 - AP23 с минимальным стартом = 23
0005 (2015.08.01): Поиск пульсаров в проекте BOINC Einshtein@Home
0006 (2016.03.07): Поиск рекордного Квадруплета (Quadruplet)
0007 (2016.06.25): Поиск простых чисел Прота (Proth): 10001 *2^n +1
0008 (2016.07.21): Поиск простых чисел Прота (Proth): k *2^13.333.333 +1
0009 (2016.08.05): Поиск крупных CP, AP или GAP: 2^35.753 ±k
|