Операция выполнена!
Закрыть
Хабы: Математика, Алгоритмы, Визуализация данных, Big Data

Почему простые числа, отображенные в полярных координатах, имеют форму спиралей или линий?

Создание сюжета

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

import math import sympy import numpy as np import matplotlib.pyplot as plt %matplotlib inline %config InlineBackend.figure_format='retina' plt.style.use('dark_background')


Один из модулей, который я здесь использую, но который я обычно не использую, — это SymPy, библиотека Python для символьной математики. Хотя SymPy предлагает широкий спектр функций для вычислений, я использую его просто для генерации простых чисел.

print(list(sympy.primerange(0, 100)))

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]


Полярные координаты

Сначала давайте напишем функцию, которая принимает некоторое число в качестве входных данных и преобразует его в декартово представление полярных координат. Выходные данные сами по себе являются декартовыми, но координаты, которые они представляют, соответствуют полярным координатам. Мы могли бы понимать эту функцию как преобразованиеС: Р →Р2С:Р→Р2такой что  

С( х ) = ( х соз( х ) , х грех( х ) )

В Python мы можем реализовать этот перевод следующим образом:

def get_coordinate(num): return num * np.cos(num), num * np.sin(num)

Давайте проведем быструю проверку работоспособности и увидим, чтоС( 1 )С(1)возвращает некоторую точку в первом квадранте.

get_coordinate(1)

(0.5403023058681398, 0.8414709848078965)


Отлично! Однако проблема с текущей настройкой заключается в том, что она не векторизована; чтобы сгенерировать координаты, скажем, для десяти чисел, нам понадобится цикл for для генерации координат для каждого из десяти чисел.

Читать далее
Читайте также
НОВОСТИ

ПИШИТЕ

Техническая поддержка проекта ВсеТут

info@vsetut.pro