Рубрика «простые числа» - 3

image
Привет! Однажды утром мне пришла в голову идея находить "исключающее ИЛИ" между координатами точки пространства и проверять полученное число на простоту. Результат такого простого алгоритма вы можете видеть на картинке. Подробнее под катом.
Читать полностью »

песочница

Свойства простых чисел редко позволяют работать с ними иначе, чем в виде заранее вычисленного массива — и желательно как можно более объемного. Естественный формат хранения в виде целых чисел той или иной разрядности страдает при этом некоторыми недостатками, которые становятся существенными при росте объема данных.

 

Так, формат 16-разрядных беззнаковых целых при размере такой таблицы около 13 килобайт вмещает всего лишь 6542 простых числа: вслед за числом 65531 идут значения более высокой разрядности. Такая таблица годится разве что в качестве игрушки.

 

Наиболее ходовой в программировании формат 32-разрядных целых выглядит значительно солиднее — он позволяет хранить около 203 млн простых. Но такая таблица занимает уже около 775 мегабайт.

 

Еще больше перспектив у 64-разрядного формата. Однако при теоретической мощности порядка 1e+19 значений, таблица имела бы размер 64 экзабайта.

Читать полностью »

Это заключительная статья серии о ди- и би-координатах. В размашистом и свободном стиле покажем, как введенные понятия можно использовать для исследования данных. Конкретно обратимся к теории чисел — это хорошее поле для демонстрации идей как математики, так и физики.

Геометрия данных 6. Физика и математика - 1

Физика — почему пространство-время псевдоевклидово?

Особенность дистанционных координат в том, что лежащее в их основе понятие дистанции (квадрата расстояния) между объектами играет ключевую роль в свойствах окружающего нас мира.
Читать полностью »

Структура и случайность простых чисел - 1

Разбросаны ли простые числа по числовой оси подобно рассеянным ветром семенам? Разумеется нет: простота — это не вопрос случайности, а результат элементарной арифметики. Число является простым тогда и только тогда, когда ни одно меньшее положительное целое число кроме единицы не делит его нацело.

Но на этом история не заканчивается. Распределение простых чисел выглядит случайным, с неравномерными разрывами и скоплениями, которые выглядят довольно хаотично. Если и существует какая-то схема, то она непостижима. На самом деле, простые числа выглядят достаточно случайными, чтобы можно было сыграть с ними в кости. Создайте список последовательных простых чисел (допустим, начав с 11, 13, 17, 19,... ) и разделите их по модулю 7. Другими словами, разделите каждое простое число на 7 и сохраните только остаток. Результатом будет последовательность целых чисел из множества {1, 2, 3, 4, 5, 6}, которая выглядит почти как результат нескольких бросков правильной кости.

$begin{align*} 11 bmod 7 & rightarrow 4 qquad 47 bmod 7 rightarrow 5 \ 13 bmod 7 & rightarrow 6 qquad 53 bmod 7 rightarrow 4 \ 17 bmod 7 & rightarrow 3 qquad 59 bmod 7 rightarrow 3 \ 19 bmod 7 & rightarrow 5 qquad 61 bmod 7 rightarrow 5 \ 23 bmod 7 & rightarrow 2 qquad 67 bmod 7 rightarrow 4 \ 29 bmod 7 & rightarrow 1 qquad 71 bmod 7 rightarrow 1 \ 31 bmod 7 & rightarrow 3 qquad 73 bmod 7 rightarrow 3 \ 37 bmod 7 & rightarrow 2 qquad 79 bmod 7 rightarrow 2 \ 41 bmod 7 & rightarrow 6 qquad 83 bmod 7 rightarrow 6 \ 43 bmod 7 & rightarrow 1 qquad 89 bmod 7 rightarrow 5 \ end{align*}$

Читать полностью »

Введение

Одним из алгоритмов для поиска простых чисел является Решето Эратосфена предложенное еще древнегреческим математиком.

Картинка из википедии:

image

Смысл в вычеркивании чисел кратных уже найденным простым. Остающиеся невычеркнутыми в свою очередь являются простыми. Более подробно расписано тут.

Одна из проблем при поиске решетом это объем памяти который надо выделить под фильтруемые числа. Вычеркнутые непростые удаляются уменьшая память, но изначально объем требуется большой.

Для решения используется сегментация (когда память выделяется по кускам) и другие ухищрения (см. тут).

Реализация алгоритма

Алгоритм внизу (написан на java) предполагает минимальный объем памяти — по сути для каждого найденного простого числа мы храним еще одно число — последнее зачеркнутое (наибольшее). Если я правильно оцениваю объем памяти ln(n) — число найденных простых.
Читать полностью »

Наткнувшись недавно на эту статью, я понял, что редко упоминаются способы вычисления факториала, отличные от банального перемножения последовательных чисел. Нужно эту ситуацию исправить.
Предлагаю рассмотреть «асимптотически наиболее быстрый» алгоритм вычисления факториала!Читать полностью »

Простые числа Мерсенна и тест Люка-Лемера - 1

Перевод поста Джона Макги (John McGee) "Mersenne Primes and the Lucas–Lehmer Test".
Код, приведенный в статье, можно скачать здесь.
Выражаю огромную благодарность Полине Сологуб за помощь в переводе и подготовке публикации


Содержание

Введение.
Теорема множителей Эйлера и Мерсенна
Люка и Лемер
От ${M_{13}}$ до ${M_{20}}$
Совершенные числа
21-е, 22-е и 23-е числа Мерсенна
24-е, 25-е и 26-е числа Мерсенна.
27-е и 28-е числа Мерсенна
29-е число Мерсенна
30-е и 31-е числа Мерсенна
Великий интернет-поиск чисел Мерсенна
Факторизация чисел Мерсенна


Введение.

Простое число Мерсенна — простое число вида ${M_p}={2^p} - 1$ (значение степени р также должно быть простым). Эти простые числа получили свое название от имени французского математика и религиозного ученого Мерсенна, который и составил данный список простых чисел этой формы в первой половине семнадцатого века. Первые четыре из них были известны уже давно: ${M_2}=3$, ${M_3}=7$, ${M_5}=31$ и ${M_7}=127$.

Мерсенн утверждал, что значение ${2^p} - 1$ будет простым для простых чисел $p leqslant 257$, принадлежащих множеству $p in left{ {{text{2}}{text{,3}}{text{,5}}{text{,7}}{text{,13}}{text{,17}}{text{,19}}{text{,31}}{text{,67}}{text{,127}}{text{,257}}} right}$. Во всем ли он был прав, можно проверить с помощью функции Wolfram LanguagePrimeQ, в которой используются современные методы тестирования чисел на простоту, для которых не требуется поиска конкретного множителя, чтобы доказать, что число составное.
Читать полностью »

2017 это не просто простое число… - 1

Прощай, год 2016-й. Здравствуй, год 2017-й.

Все мы знаем, что число 2017 простое (это же Гиктаймс, не так ли). Но оно гораздо больше, чем просто простое число.Читать полностью »

Специальные простые числа помогают пассивно прослушать протокол обмена ключами Диффи-Хеллмана - 1
Слайд из презентации АНБ

В 2013 году благодаря Эдварду Сноудену в СМИ попали документы АНБ. Среди них — замыленный слайд из презентации, который указывал на возможности АНБ по расшифровке трафика VPN. У АНБ не было причин врать в засекреченной презентации, так что специалисты восприняли эту информацию как свидетельство наличия некоей фундаментальной уязвимости в современных системах криптографии с открытым ключом.
Читать полностью »

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

Для поступления предлагалось пройти несколько этапов, решая логические/математические задачи.
Варианты решения некоторых типовых задач первого этапа я и попытаюсь разобрать в данной статье.
PS: Для удобства быстрого написания и отладки кода подсчетов использовался JavaScript.

Пока писал статью, смотрю, в песочнице меня уже опередили по теме. Однако, у меня рассмотрены другие типы задач, только одна совпала про степени (но, судя по комментариям, не в обиду автору — решение неверное).
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js