Охват к подписчикам
126,6%
ERR
Реакции к просмотрам
0,59%
241 на 22 постов
Пересылки к просмотрам
0,50%
206
Постов в день
0,1
всего 22
Где отзываются чаще
доля реакций к просмотрам- 18 июн.в качестве интермедии — нарисовал просто картинки разных многочленов на комплексной плоскости цвет соответствует аргументу значения в данной точке хорошо видны корни — точки, рядом с которыми сходятся все цвета это само по себе намекает на одно из доказательств основной теоремы алгебры2,07%
- 25 июл.будем переходить от многоугольника к новому многоугольнику с вершинами в серединах сторон исходного («отображение Бюффона») если итерировать это отображение, то все вершины стремятся к одной точке… но что при этом происходит с формой N-угольника? оказывается, он становится аффинно правильным (это, кстати, достаточно просто доказать); в приземленных терминах: после нескольких итераций он практически становится «параллельником» — (практически) параллельны те же стороны и диагонали, что у правильного N-угольника (для 4-угольников уже после первой итерации получается параллелограмм… ну вот Бюффона можно считать таким обобщением Вариньона) можно посмотреть пример на гифке или попробовать разные многоугольника по ссылке dev.mccme.ru/~merzon/compmath/midpoints.html *** услышал про это в начале лекции А.П.Веселова на ЛШСМ-2026 — дальше обсуждался трехмерный случай, где все сложнее upd: появилось, кстати, видео — mathnet.ru/rus/present509831,51%
- 18 апр.на картинке для небольших чисел (до 47) показано, насколько велик их НОД по сравнению с их произведением (по клеткам разнесена формула =GCD($A2,B$1)/SQRT($A2*B$1)) можно подумать, что видно на этой картинке и почему0,98%
- 5 маяЧерепашка Фурье и черепашка Гаусса Была такая популярная форма программирования для начинающих «черепашка». У нас будет базовая версия, которая умеет 1) двигаться прямо, оставляя след; 2) поворачиваться (на месте) на указанный угол. Можно написать что-нибудь типа import math import matplotlib.pyplot as plt x, y, phi = 0, 0, 0 def move(s=1,color='blue'): global x, y x0, y0 = x, y x = x0 + s*math.cos(phi) y = y0 + s*math.sin(phi) plt.plot([x0,x],[y0,y],color=color) def turn(s): global phi phi += s*2*math.pi for k in range(100): move() turn(1/100) plt.gca().set_aspect('equal') plt.show() и увидеть на экране окружность. Ну… тоже приятно, но не особо интересно. Забавно, что содержательные вещи буквально в одном шаге от такого. Например, можно вместо move() написать move(<функция от k>) и смотреть, как черепашка занимается преобразованием Фурье. Но мы лучше оставим сдвиги одинаковыми, а вот поворот пусть растет линейно со временем. Вот на картинке результат p = 101 for k in range(p): move() turn((2*k+1)/p) Можно задавать вопросы… например, далеко ли черепашка уйдет от начала координат при разных p? Тут есть несколько уровней 1) экспериментальный; 2) эмпирическая прикидка в вероятностном духе для большого p; 3) точный ответ для произвольного p. Можно, кстати, от 2) пойти чуть-чуть в другую сторону и смотреть для больших p на всю форму кривой (а не только на то, далеко ли мы уйдем). Видим мы, на самом деле, спирали Корню (=кривизна пропорциональна пройденному расстоянию). *** Напомнил о таком сюжете недавно коллега Гусарев, а еще чуть раньше про это писал Гаусс коллега Клепцын.0,96%
- 30 маяв квадратную коробку какого наименьшего размера можно положить N единичных кругов? если N большое, то известно что примерно мы увидим… или если N какое-нибудь круглое, типа 4 или 9… а если N какое-нибудь дурное, типа 11? как найти оптимум, блуждая по пространству конфигураций? есть два радикально разных подхода: 1) двигаться в случайном направлении, если получилось поставить рекорд — записать его в книжечку; 2) сдвигаться в новую точку только если в ней лучше, чем в старой первый подход не может работать потому что оптимальные конфигурации очень конкретные, случайно туда не попадаешь; второй подход не может работать, потому что есть много локальных экстремумов (жестких конфигураций) и из первого же нам не уйти в simulated annealing эти две идеи смешаны: сначала температура высокая и мы делаем достаточно случайные переходы, потом температура понижается и ухудшающие ситуацию переходы становятся всё менее вероятными… и всё магическим образом работает это оказалось не особо сложно реализовать… но в зависимости от параметров магия либо работает, либо не работает, и надо как-то подбирать их либо наобум (долго и мучительно), либо из опыта, либо из глубокого понимания происходящего… мне, увы, доступен только первый вариант вот, собственно, практически весь код: def simulated_annealing(N, max_iter, T=0.2, cooling=0.9975): centers = np.random.uniform(0, 1, (N, 2)) best_centers = centers.copy() best_R = R = max_radius(centers) history = [R] for step in range(max_iter): i = step%N old_pos = centers[i].copy() old_dist = point_dist(i, centers) step_size = min(T**0.5,0.04) centers[i] += np.random.normal(0, step_size, 2) centers[i] = np.clip(centers[i], 0.0, 1.0) delta = point_dist(i, centers) - old_dist if delta > 0 or np.random.random() < np.exp(delta / T): R = max_radius(centers) if R > best_R: best_R = R best_centers = centers.copy() else: centers[i] = old_pos T *= cooling history.append(R) return best_centers, best_R, history (кто дочитал досюда, может заметить, что реализован не буквально отжиг… но если двигать точки по одной, работает лучше — и даже интуитивно понятно, почему) на наилучшие известные упаковки можно посмотреть на странице erich-friedman.github.io/packing/ — мб кто-то из читателей сможет что-то из рекордов улучшить ;0,93%
- 10 июл.рассмотрим последовательность a(1) = 7 a(n) = a(n-1)+НОД(n, a(n-1)) Rowland доказал, что каждый раз число увеличивается либо на 1, либо на простое число (но появляются ли так все нечетные простые, неизвестно) ( и такая задача предлагалась, как научили в комментариях, на Турнире городов — problems.ru/view_problem_details_new.php?id=64532 ) коллега Медведь поделился забавным родственником этой последовательности, который для разных начальных условий (гипотетически) генерирует всё большие простые числа-близнецы: https://math.stackexchange.com/q/5142627/152 (по ссылке как раз эксперименты и обсуждения)0,89%
- 15 авг.just for fun на каникулах: purplesyringa.moe/blog/log-is-non-monotonic-in-php-and-lua/ — реализация логарифма иногда оказывается немонотонной функцией (и не по той причине, о которой вы, вероятно, подумали)0,87%
- 28 июн.рассказывал сегодня про треугольник Серпинского — и хотелось показать, как он возникает в «игре в хаос» это такая конструкция: кузнечик стартует в какой-то из точек внутри треугольника, на каждом шаге прыгает в середину отрезка, соединяющего его с одной из вершин (какой именно, выбираем случайно) — тогда через k шагов он будет внутри k-й стадии построения треугольника Серпинского а если запустить много кузнечиков, то треугольник Серпинского постепенно появляется на экране позапускать кузнечиков можно по ссылке dev.mccme.ru/~merzon/compmath/sierpinski.html0,85%
- 21 июл.во время ЛШСМ на компьютерные развлечения не хватает энергии, так что вот пока вместо моего поста — пост Тао: terrytao.wordpress.com/2026/07/14/visualizing-the-gilbreath-expectation-sequence/0,74%
- 16 июл.упомянутый в прошлом посте Rowland (относительно) недавно рассказывал, оказывается, на семинаре по экспериментальной математике вот про что возмьем квадратную матрицу неотрицательных чисел. и будем нормировать строки-столбцы: разделим каждую строку на сумму чисел в ней, потом каждый столбец, потом снова каждую строку… к чему это сойдется («Sinkhorn limit»)? вот, например, для матрицы [4 1\\ 2 1] можете сообразить, что это за числа получаются? можно посмотреть на приближенные значения: import numpy as np A = np.array([[4,1],[2,1]]) for _ in range(5): A = A / A.sum(axis=1, keepdims=True) A = A / A.sum(axis=0, keepdims=True) print(A) (для матриц произвольного размера жизнь быстро усложняется — и доклад был как раз про разные экспериментальные гипотезы по этому поводу… мб напишу позже какие-то подробности)0,63%
- 20 июн.возьмем теперь не конкретные многочлены, а что-то более случайное… ну например, будем брать многочлены степени 200 со старшим коэффициентом 1, а остальные к-ты будем выбирать… ну скажем равномерно из отрезка [-10;10] можно попробовать угадать, как будут выглядеть соотвествующие картинки на комплексной плоскости, а потом заглянуть под спойлер см. также: mathoverflow.net/q/182412/15560,56%
- 6 авг.история про Rowland'а и Sinkhorn limit немного повисла в воздухе — вернемся ненадолго матрица 2×2, у которой суммы по строкам и столбцам единицы, имеет вид [x 1-x\\ 1-x x] чтобы понять, к какой из матриц такого вида мы сойдемся, нужно еще найти инвариант процесса — ну вот он такой соверешнно в духе мат. кружка: произведение чисел на черных клетках делить на произведение чисел на белых, ad/bc — получается уравнение на x, из которого x = √ad/(√ad+√bc) — вот эти квадратные корни и были видны в эксперименте конечно аналогичные инварианты можно писать для 2×2 подматриц матрицы 3×3 — и в итоге на элементы предельной матрицы получаются алгебраические уравнения степени 6 ну на этом история не заканчивается, можно почитать дальше доклад0,48%