Построение графиков простых чисел
Почему простые числа, отображенные в полярных координатах, имеют форму спиралей или линий? Создание сюжета Для начала нам необходимо увидеть, каковы эти шаблоны на самом деле. Давайте начнем наше исследование с импорта базовых модулей. 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 для генерации координат для каждого из десяти чисел.
https://habr.com/ru/articles/866948/
#спираль_улама #простые_числа #теория_чисел #компьютерная_графика #визуализация_данных