Главная » Хабрахабр » Бесконечный узор на основе простых чисел

Бесконечный узор на основе простых чисел

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

Алгоритм генерации узора

Алгоритм на языке C++

long long temp = x ^ y; // x и y координаты точки
// Далее идет проверка temp на простоту одним из алгоритмов.
// Например алгоритм Бэйли-Померанс-Селфридж-Вагстафф (BPSW) проверки n на простоту
if(isprime(temp) == true) { // рисуем закрашенную точку
} else {
// оставляем точку пустой
}

Такой алгоритм дает следующие бесконечные узоры:

Картинки с узорами

Можно также посмотреть видео с узорами:

Другие варианты узоров

Если заменить операцию XOR (исключающее ИЛИ) на операцию ИЛИ или И, можно получить фрактальные треугольники:

image

image

Но такие варианты дают менее разнообразные узоры. Также можно вместо проверки на простое число использовать любые другие проверки, например деление без остатка на какое-либо число.

Программа и исходники

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


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Как открыть ИП в Германии, если ты программист, и не набить шишек

В последние недели Берлин — популярная тема на Хабре. Не случайно — в Германии много возможностей для работы в ИТ с комфортным переездом. Но бюрократия она и в Африке бюрократия, а если встают вопросы об индивидуальном предпринимательстве за рубежом — ...

4 октября, Москва — Backend Stories 2.0

В четверг, 4 октября, на площадке Deworkacy (ул. Большая Полянка, д.2/10, стр 1) мы проведём митап для backend-разработчиков. 00, подробности — под катом.19:20–19:30, Павел Дерендяев, вступительное слово. Начинаем в 19. 30–20:10, Иван Походня, «Как мы хотели в Java 11 и ...