Май 2, 2010, 02:24
Совсем-совсем недавно (меньше года назад!), был открыт очень интересный новый фрактал — Мандельбульба (Mandelbulb). Открыли его два математика: Даниэль Уайт (Daniel White) и Поль Ниландер (Paul Nylander). Они использовали гиперкомплексную алгебру, основанную на сферической системе координат. Алгебра оперирует трёхэлементными числами, соответствующими координатам точки в трехмерном пространстве. Для этих чисел (вида
) определены операции возведения в степень:

где

И операция поэлементного сложения.
С помощью этих двух операций можно построить трехмерный аналог множества Мандельброта, воспользовавшись известной формулой
, где
и
— числа в нашей алгебре. Трехмерная точка
принадлежит множеству, если процесс
для
остается ограниченным (не «улетает» в бесконечность). При реализации следует обратить внимание, что для вычисления
необходимо использовать двухаргументную функцию atan2(a,b), которая есть практически в любом распространенном языке программирования.
Ниже приведена моя картинка для мандельбульбы 8-го порядка (
) при 5 итерациях, нарисована с помощью очень простого трассировщика лучей:

Февраль 16, 2010, 04:44
Параметрические поверхности страсть как хороши!
Обои для рабочего стола с этой картинкой
Специально для фанатов математики, формула этой поверхности:
(далее...)
Декабрь 13, 2006, 05:35
Это статья посвящена простым числам и эффективным способам их вычисления. Сразу скажу, что те алгоритмы, которые тут приведены, являются весьма и весьма нетривиальными и самому мне не давались довольно долго, но в итоге я их всё-таки придумал, написал и спешу поделиться со всеми вами. Исходные тексты в статье будут приведены на языках C# и Haskell.
Простое число – это натуральное число больше единицы, которое имеет ровно два делителя: единицу и само это число.
Решето Эратосфена – древний, но при этом весьма эффективный и до сих пор широко используемый алгоритм поиска всех простых чисел не превосходящих некоторого N.
Запишем подряд все числа от 2 до N. Дальше вычеркнем из этого списка все числа кратные 2, исключая саму двойку, потом вычеркнем все числа кратные 3, исключая само число 3, число 4 уже вычеркнуто, вычеркиваем числа кратные 5 и т.д. Продолжаем этот процесс, пока квадрат очередного числа не превысит N.
Самая простая программная реализация этого алгоритма выглядит следующим образом:
(далее...)