Задача 2. Доказательство формулы площади трапеции.
🦎 Решение методом хамелеона. Проведём в трапеции две высоты так, чтобы её площадь можно было представить в виде суммы (разности) площадей прямоугольника и двух прямоугольных треугольников. Хамелеон успешно перевоплотил трапецию в знакомые фигуры, сделав формулу очевидной.
🐫 Решение методом верблюда. Продлим боковые стороны и достроим трапецию до треугольника — "приставим верблюда". Образуется два подобных треугольника, коэффициент подобия которых равен отношению оснований трапеции. Вычислим их высоты, площади, и "удалим верблюда".
🏹 Решение методом кентавра. Введём "кентавра" — среднюю линию трапеции; она связана с обоими основаниями и высотой. Теперь (с помощью разрезания и сдвига) несложно показать, что площадь трапеции равна площади прямоугольника, построенного на средней линии и высоте.
🦎 Решение методом хамелеона. Проведём в трапеции две высоты так, чтобы её площадь можно было представить в виде суммы (разности) площадей прямоугольника и двух прямоугольных треугольников. Хамелеон успешно перевоплотил трапецию в знакомые фигуры, сделав формулу очевидной.
🐫 Решение методом верблюда. Продлим боковые стороны и достроим трапецию до треугольника — "приставим верблюда". Образуется два подобных треугольника, коэффициент подобия которых равен отношению оснований трапеции. Вычислим их высоты, площади, и "удалим верблюда".
🏹 Решение методом кентавра. Введём "кентавра" — среднюю линию трапеции; она связана с обоими основаниями и высотой. Теперь (с помощью разрезания и сдвига) несложно показать, что площадь трапеции равна площади прямоугольника, построенного на средней линии и высоте.
👍6🔥4❤2🤔1
Задача 3. Игрок бросает монету, пока не выпадет орёл. Какова вероятность, что число бросков будет чётным?
🦎 Решение методом хамелеона. Переформулируем условие задачи на язык бесконечных рядов: вычислим вероятность, представив событие "чётное число бросков" как объединение всех возможных непересекающихся элементарных исходов, ведущих к этому событию (орёл впервые на 2-м, 4-м, 6-м ... броске).
Вероятность первого орла на втором броске равна (½)²=¼; на 4-м броске — (½)⁴; на 6-м — (½)⁶…
Общая вероятность чётного числа бросков — это сумма геометрической прогрессии с первым членом ¼ и знаменателем ¼, она равна ¼ / (1–¼) = ⅓.
🐫 Решение методом верблюда. Введём "верблюда" — вспомогательную переменную P_нечётн = y (вероятность нечётного числа бросков). Используем её для нахождения чётного числа бросков P_чётн = x, а затем исключим.
Пусть первый бросок орёл (вероятность ½): число бросков = 1 (нечётное) => вклад в y равен ½.
Если же первый бросок решка (вероятность ½): мы потратили 1 бросок (нечётный), и чтобы общее число было нечётным, оставшаяся серия должна занять чётное число попыток. Вероятность этого — x. Вклад в y равен ½x.
Полная вероятность нечётного числа бросков:
y = ½ + ½x.
С учётом равенства x + y = 1 находим: y = ⅓.
🏹 Решение методом кентавра. "Кентавр" — это событие А: "Первый бросок — решка". Оно является общим посредником, связывающим исходную задачу (P_чётн) с новой вероятностной ситуацией, которая возникает после первого броска и имеет ту же структуру, что и исходная.
Если А произошло (первая — решка), то оставшаяся серия идентична исходной задаче. Значит,
P(P_чётн | A) = P_нечётн.
Если А не произошло (первый орёл), то число бросков равно 1 (нечётное), и
P(P_чётн | не A) = 0.
По формуле полной вероятности получаем:
P_чётн = ½ P_нечётн (*).
"Кентавр" A также связывает P_нечётн с исходной задачей. Аналогично:
P(P_нечётн | A) = P_чётн (после первой решки нужно чётное число в оставшейся серии для общего нечётного).
P(P_нечётн | не A) = 1 (первый орёл сразу даёт нечётное = 1). Получаем:
P_нечётн = ½ P_чётн + ½ (**).
Из уравнений (*) и (**) вновь получаем ответ ⅓.
🦎 Решение методом хамелеона. Переформулируем условие задачи на язык бесконечных рядов: вычислим вероятность, представив событие "чётное число бросков" как объединение всех возможных непересекающихся элементарных исходов, ведущих к этому событию (орёл впервые на 2-м, 4-м, 6-м ... броске).
Вероятность первого орла на втором броске равна (½)²=¼; на 4-м броске — (½)⁴; на 6-м — (½)⁶…
Общая вероятность чётного числа бросков — это сумма геометрической прогрессии с первым членом ¼ и знаменателем ¼, она равна ¼ / (1–¼) = ⅓.
🐫 Решение методом верблюда. Введём "верблюда" — вспомогательную переменную P_нечётн = y (вероятность нечётного числа бросков). Используем её для нахождения чётного числа бросков P_чётн = x, а затем исключим.
Пусть первый бросок орёл (вероятность ½): число бросков = 1 (нечётное) => вклад в y равен ½.
Если же первый бросок решка (вероятность ½): мы потратили 1 бросок (нечётный), и чтобы общее число было нечётным, оставшаяся серия должна занять чётное число попыток. Вероятность этого — x. Вклад в y равен ½x.
Полная вероятность нечётного числа бросков:
y = ½ + ½x.
С учётом равенства x + y = 1 находим: y = ⅓.
🏹 Решение методом кентавра. "Кентавр" — это событие А: "Первый бросок — решка". Оно является общим посредником, связывающим исходную задачу (P_чётн) с новой вероятностной ситуацией, которая возникает после первого броска и имеет ту же структуру, что и исходная.
Если А произошло (первая — решка), то оставшаяся серия идентична исходной задаче. Значит,
P(P_чётн | A) = P_нечётн.
Если А не произошло (первый орёл), то число бросков равно 1 (нечётное), и
P(P_чётн | не A) = 0.
По формуле полной вероятности получаем:
P_чётн = ½ P_нечётн (*).
"Кентавр" A также связывает P_нечётн с исходной задачей. Аналогично:
P(P_нечётн | A) = P_чётн (после первой решки нужно чётное число в оставшейся серии для общего нечётного).
P(P_нечётн | не A) = 1 (первый орёл сразу даёт нечётное = 1). Получаем:
P_нечётн = ½ P_чётн + ½ (**).
Из уравнений (*) и (**) вновь получаем ответ ⅓.
🔥6❤3👍2
Задача 4. Сколькими способами можно разложить n одинаковых шаров по k разным ящикам? (Пустые ящики разрешены).
🦎 Решение методом хамелеона. Переформулируем задачу: представим шары и ящики как последовательность из n шаров (◯) и (k−1) разделителя (│). Число способов расставить символы: C(n+k−1, k−1).
🐫 Решение методом верблюда. Добавим по 1 шару в каждый ящик (стало n+k шаров). Решим задачу без пустых ящиков: число способов равно C((n+k)−1, k−1). Уберём добавленные шары — задача сведена к исходной.
🏹 Решение методом кентавра. Введём "кентавра" – величину x, обозначающую количество шаров, попадающих в первый ящик. x может принимать значения от 0 до n (связь с общим числом шаров n). Для каждого фиксированного x, число способов распределить оставшиеся n – x шаров по оставшимся k – 1 ящикам (связь с числом ящиков k) равно f(n – x, k – 1), где f(a, b) — функция, считающая число способов распределить a одинаковых шаров по b разным ящикам (пустые разрешены). Суммируя по всем возможным x, получаем рекуррентное соотношение:
f(n, k) = Σ [x=0 → n] f(n – x, k – 1)
с базовыми случаями:
f(m, 1) = 1 для любого m ≥ 0 (1 ящик: все шары туда, 1 способ).
f(0, b) = 1 для любого b ≥ 1 (0 шаров: все ящики пусты, 1 способ).
Полученное рекуррентное соотношение в точности соответствует определению числа сочетаний с повторениями (числа мультимножеств размера n из k типов). Решением этого соотношения является известная формула C(n + k – 1, k – 1) или эквивалентная ей C(n + k – 1, n).
Хамелеон меняет язык задачи (переформулировка), Верблюд несёт полезную ношу (введение и удаление вспомогательного объекта), а Кентавр строит мосты между её элементами (установление связи через посредника). Эти остроумные приёмы, объединённые в нашем математическом зоопарке, прекрасно иллюстрируют гибкость и единство математической мысли!
🦎 Решение методом хамелеона. Переформулируем задачу: представим шары и ящики как последовательность из n шаров (◯) и (k−1) разделителя (│). Число способов расставить символы: C(n+k−1, k−1).
🐫 Решение методом верблюда. Добавим по 1 шару в каждый ящик (стало n+k шаров). Решим задачу без пустых ящиков: число способов равно C((n+k)−1, k−1). Уберём добавленные шары — задача сведена к исходной.
🏹 Решение методом кентавра. Введём "кентавра" – величину x, обозначающую количество шаров, попадающих в первый ящик. x может принимать значения от 0 до n (связь с общим числом шаров n). Для каждого фиксированного x, число способов распределить оставшиеся n – x шаров по оставшимся k – 1 ящикам (связь с числом ящиков k) равно f(n – x, k – 1), где f(a, b) — функция, считающая число способов распределить a одинаковых шаров по b разным ящикам (пустые разрешены). Суммируя по всем возможным x, получаем рекуррентное соотношение:
f(n, k) = Σ [x=0 → n] f(n – x, k – 1)
с базовыми случаями:
f(m, 1) = 1 для любого m ≥ 0 (1 ящик: все шары туда, 1 способ).
f(0, b) = 1 для любого b ≥ 1 (0 шаров: все ящики пусты, 1 способ).
Полученное рекуррентное соотношение в точности соответствует определению числа сочетаний с повторениями (числа мультимножеств размера n из k типов). Решением этого соотношения является известная формула C(n + k – 1, k – 1) или эквивалентная ей C(n + k – 1, n).
Хамелеон меняет язык задачи (переформулировка), Верблюд несёт полезную ношу (введение и удаление вспомогательного объекта), а Кентавр строит мосты между её элементами (установление связи через посредника). Эти остроумные приёмы, объединённые в нашем математическом зоопарке, прекрасно иллюстрируют гибкость и единство математической мысли!
❤8👍5🔥4
История умножения: древние и современные методы
Умножение многозначных чисел — операция, эффективность которой критична для современных вычислений. Как эволюционировали алгоритмы от древних методов до тех, что справляются с числами астрономической длины? Разберём ключевые подходы и их вычислительную сложность.
1️⃣ Все помнят школьный метод умножения "столбиком": умножаем каждую цифру второго числа на каждую цифру первого числа, записываем результаты со сдвигом и складываем их все вместе.
Вычислительная сложность этого метода составляет O(n²). Это означает, что если оба числа имеют n цифр, то нам нужно выполнить примерно n∙n = n² элементарных умножений (цифру на цифру) и примерно столько же сложений при суммировании промежуточных результатов. Это как заполнить и просуммировать таблицу размером n × n.
2️⃣ Умножение "русского крестьянина" ( способ ещё называют "древнеегипетским"). Алгоритм основан на двоичном представлении числа. Одно число последовательно удваиваем, другое (обычно меньшее) целочисленно делим на 2, отбрасывая остаток. Складываем только те удвоенные значения первого числа, напротив которых второе число нечётное.
Применим к 23 × 45:
23 45 ✅
11 90 ✅
5 180 ✅
2 360 ❌
1 720 ✅
Сумма: 45 + 90 + 180 + 720 = 1035.
Алгоритм использует двоичное представление первого числа (23₁₀ = 10111₂). Мы просто складываем кратные 45 числа, соответствующие степеням двойки из разложения 23:
45∙1 + 45∙2 + 45∙4 + 45∙16 = 45 + 90 + 180 + 720.
Вычислительная сложность метода имеет порядок O(n²): количество шагов (делений числа на 2) имеет порядок O(n); и на каждом шаге само деление/умножение на 2 также имеет порядок O(n).
Исторически метод использовался для ручных вычислений (очень прост!). Сейчас — в специализированных приложениях (криптография на эллиптических кривых, модульная арифметика), где удобны операции удвоения/сложения точек или где легко реализуются битовые сдвиги. Является основой для понимания более сложных алгоритмов.
Умножение многозначных чисел — операция, эффективность которой критична для современных вычислений. Как эволюционировали алгоритмы от древних методов до тех, что справляются с числами астрономической длины? Разберём ключевые подходы и их вычислительную сложность.
1️⃣ Все помнят школьный метод умножения "столбиком": умножаем каждую цифру второго числа на каждую цифру первого числа, записываем результаты со сдвигом и складываем их все вместе.
Вычислительная сложность этого метода составляет O(n²). Это означает, что если оба числа имеют n цифр, то нам нужно выполнить примерно n∙n = n² элементарных умножений (цифру на цифру) и примерно столько же сложений при суммировании промежуточных результатов. Это как заполнить и просуммировать таблицу размером n × n.
2️⃣ Умножение "русского крестьянина" ( способ ещё называют "древнеегипетским"). Алгоритм основан на двоичном представлении числа. Одно число последовательно удваиваем, другое (обычно меньшее) целочисленно делим на 2, отбрасывая остаток. Складываем только те удвоенные значения первого числа, напротив которых второе число нечётное.
Применим к 23 × 45:
23 45 ✅
11 90 ✅
5 180 ✅
2 360 ❌
1 720 ✅
Сумма: 45 + 90 + 180 + 720 = 1035.
Алгоритм использует двоичное представление первого числа (23₁₀ = 10111₂). Мы просто складываем кратные 45 числа, соответствующие степеням двойки из разложения 23:
45∙1 + 45∙2 + 45∙4 + 45∙16 = 45 + 90 + 180 + 720.
Вычислительная сложность метода имеет порядок O(n²): количество шагов (делений числа на 2) имеет порядок O(n); и на каждом шаге само деление/умножение на 2 также имеет порядок O(n).
Исторически метод использовался для ручных вычислений (очень прост!). Сейчас — в специализированных приложениях (криптография на эллиптических кривых, модульная арифметика), где удобны операции удвоения/сложения точек или где легко реализуются битовые сдвиги. Является основой для понимания более сложных алгоритмов.
🔥9👍7❤2
3️⃣ "Итальянский" метод (или метод сетки). Визуальный предок столбика! Рисуем таблицу (сетку). Строки — цифры первого числа, столбцы — цифры второго числа. В ячейки записываем двузначные произведения (десятки сверху, единицы снизу, даже если 0). А потом складываем числа вдоль диагоналей (начинаем справа-снизу).
На примере 23 × 45:
2 и 3 — строки, 4 и 5 — столбцы. В соответствующие ячейки нашей таблицы записываем:
2 × 4 = 08 → 0 / 8,
2 × 5 = 10 → 1 / 0,
3 × 4 = 12 → 1 / 2,
3 × 5 = 15 → 1 / 5.
Складываем числа вдоль диагональных полос (начиная справа-снизу):
самая правая полоса: 5 (от 1 / 5) → 5,
следующая полоса: 0 (от 1 / 0) + 1 (от 1 / 5) + 2 (от 1 / 2) = 3 (пишем 3, но если сумма >9, переносим десятки),
следующая полоса: 1 (от 1 / 0) + 8 (от 0 / 8) + 1 (от 1 / 2) = 10 → пишем 0, переносим 1,
самая левая полоса: 0 (от 0 / 8) + 1 (перенос) = 1.
Читаем результат: слева направо по сумме полос: 1035.
Метод наглядно показывает разбиение на разряды. Использовался в средневековой Европе (например, так считал Фибоначчи) и арабском мире.
Сложность O(n²) — для двух n-значных чисел нужно выполнить n ∙ n = n² умножений однозначных цифр и потом сложить результаты (сложность сложения O(n)).
На примере 23 × 45:
2 и 3 — строки, 4 и 5 — столбцы. В соответствующие ячейки нашей таблицы записываем:
2 × 4 = 08 → 0 / 8,
2 × 5 = 10 → 1 / 0,
3 × 4 = 12 → 1 / 2,
3 × 5 = 15 → 1 / 5.
Складываем числа вдоль диагональных полос (начиная справа-снизу):
самая правая полоса: 5 (от 1 / 5) → 5,
следующая полоса: 0 (от 1 / 0) + 1 (от 1 / 5) + 2 (от 1 / 2) = 3 (пишем 3, но если сумма >9, переносим десятки),
следующая полоса: 1 (от 1 / 0) + 8 (от 0 / 8) + 1 (от 1 / 2) = 10 → пишем 0, переносим 1,
самая левая полоса: 0 (от 0 / 8) + 1 (перенос) = 1.
Читаем результат: слева направо по сумме полос: 1035.
Метод наглядно показывает разбиение на разряды. Использовался в средневековой Европе (например, так считал Фибоначчи) и арабском мире.
Сложность O(n²) — для двух n-значных чисел нужно выполнить n ∙ n = n² умножений однозначных цифр и потом сложить результаты (сложность сложения O(n)).
🔥7👍5❤2
4️⃣ Алгоритм Карацубы. А можно ли умножать быстрее, чем за O(n²)? В 1956 г. великий Колмогоров высказал гипотезу, что быстрее O(n²) умножить нельзя. А в 1960 г. 23-летний аспирант Анатолий Карацуба показал, что можно умножать быстрее! Он предложил следующий красивый трюк.
Представим два n-значных числа x и y как:
x = a∙10ᵐ + b (где a — старшие m цифр, b — младшие m цифр, m ≈ n/2),
y = c∙10ᵐ + d.
Тогда x∙y = (a∙10ᵐ + b)∙(c∙10ᵐ + d) =
= a∙c∙10²ᵐ + (a∙d + b∙c)∙10ᵐ + b∙d.
Казалось бы, нужно вычислить четыре произведения:
a∙c, a∙d, b∙c, b∙d. Но Карацуба заметил, что (a∙d + b∙c) можно выразить через три произведения:
a∙d + b∙c = (a + b)∙(c + d) – a∙c – b∙d.
Рассмотрим на примере.
Нужно вычислить
23 × 45 = (2∙10 + 3) ∙ (4∙10 + 5) =
= 2∙4∙100 + (2∙5 + 3∙4) ∙10 + 3∙5.
Обычно имеем 4 ключевых произведения: 2∙4, 2∙5, 3∙4 и 3∙5. Применяя хитрость Карацубы:
А = 2∙4 = 8,
B = 3∙5 = 15,
C = (2+3)∙(4+5) = 45,
D = C – A – B = 22.
Собираем результат:
A∙100 + D∙10 + B = 8∙100 + 22∙10 + 15 = 1035.
Фокус в том, что С дал нам сумму двух нужных произведений одним умножением (2∙5 + 3∙4), и вместо четырёх умножений — три (А, В и С)! И главное — этот трюк применяется рекурсивно к самим блокам A, B, C.
Метод лежит в основе многих библиотек для работы с большими целыми числами (GMP, Java BigInteger, Python int) для чисел "среднего" размера (от сотен до тысяч или десятков тысяч цифр).
Сложность этого метода O(n^(log₂(3))) ≈ O(n¹’⁵⁸⁵). Это значительно меньше, чем O(n²) при росте n! Для наших двузначных разница незаметна, но для чисел в 1000 цифр она колоссальна!
Представим два n-значных числа x и y как:
x = a∙10ᵐ + b (где a — старшие m цифр, b — младшие m цифр, m ≈ n/2),
y = c∙10ᵐ + d.
Тогда x∙y = (a∙10ᵐ + b)∙(c∙10ᵐ + d) =
= a∙c∙10²ᵐ + (a∙d + b∙c)∙10ᵐ + b∙d.
Казалось бы, нужно вычислить четыре произведения:
a∙c, a∙d, b∙c, b∙d. Но Карацуба заметил, что (a∙d + b∙c) можно выразить через три произведения:
a∙d + b∙c = (a + b)∙(c + d) – a∙c – b∙d.
Рассмотрим на примере.
Нужно вычислить
23 × 45 = (2∙10 + 3) ∙ (4∙10 + 5) =
= 2∙4∙100 + (2∙5 + 3∙4) ∙10 + 3∙5.
Обычно имеем 4 ключевых произведения: 2∙4, 2∙5, 3∙4 и 3∙5. Применяя хитрость Карацубы:
А = 2∙4 = 8,
B = 3∙5 = 15,
C = (2+3)∙(4+5) = 45,
D = C – A – B = 22.
Собираем результат:
A∙100 + D∙10 + B = 8∙100 + 22∙10 + 15 = 1035.
Фокус в том, что С дал нам сумму двух нужных произведений одним умножением (2∙5 + 3∙4), и вместо четырёх умножений — три (А, В и С)! И главное — этот трюк применяется рекурсивно к самим блокам A, B, C.
Метод лежит в основе многих библиотек для работы с большими целыми числами (GMP, Java BigInteger, Python int) для чисел "среднего" размера (от сотен до тысяч или десятков тысяч цифр).
Сложность этого метода O(n^(log₂(3))) ≈ O(n¹’⁵⁸⁵). Это значительно меньше, чем O(n²) при росте n! Для наших двузначных разница незаметна, но для чисел в 1000 цифр она колоссальна!
🔥18❤4❤🔥2
5️⃣ Алгоритм Тоома–Кука. Одним из усовершенствований метода Карацубы является метод Тоома–Кука (1970 г.). Если Карацуба разделяет запись числа на две части, то Андрей Тоом и Стивен Кук предложили "разрезать" его на большее количество "кусков", собирая пазл умножения через интерполяцию многочленов.
Рассмотрим суть метода на примере для 123 × 456 с "разрезанием" на k = 3 части.
Представим числа как многочлены от х:
A(x) = 1∙x² + 2∙x + 3 (это 123 при x=10)
B(x) = 4∙x² + 5∙x + 6 (это 456 при x=10)
Нам нужно найти C(x) = A(x) ∙ B(x).
Выберём 2k–1 удобных значений m (например: 0, 1, –1, 2, ∞).
Вычисляем A(m) и B(m) для каждого m:
m=0: A(0)=3, B(0)=6 → C(0)=3∙6=18;
m=1: A(1)=1+2+3=6, B(1)=4+5+6=15 → C(1)=6∙15=90;
m=–1: A(–1)=1–2+3=2, B(–1)=4–5+6=5 → C(–1)=2∙5=10;
m=2: A(2)=1∙4+2∙2+3=11, B(2)=4∙4+5∙2+6=32 → C(2)=11∙32=352;
m=∞ ( старший коэффициент): 1∙4=4 → C(∞)=4.
Теперь мы знаем значения C(m) в 5 точках. Задача — восстановить коэффициенты многочлена C(x) = c₄∙x⁴ + c₃∙x³ + c₂∙x² + c₁∙x + c₀, который проходит через эти точки. Это решается системой уравнений или с помощью интерполяционных формул.
Осталось подставить значение x=10 — найденные коэффициенты c₄, c₃, c₂, c₁, c₀ дадут цифры результата!
(Для нашего примера C(10) = c₄∙10000 + c₃∙1000 + c₂∙100 + c₁∙10 + c₀ = 56088.)
Вместо одного сложного умножения гигантов мы делаем много маленьких умножений (A(m) ∙ B(m)). Для больших n маленькие умножения делаются гораздо быстрее.
Сложность метода O(n^(logₖ (2k–1))). Для k=3 это ~O(n¹’⁴⁶⁵) — быстрее метода Карацубы. Чем больше k, тем лучше асимптотика, но растут накладные расходы (интерполяция). Тоома–Кука обычно используют для чисел среднего размера между Карацубой и следующим монстром.
Метод используют библиотеки больших чисел (GMP), где Карацуба уже тормозит.
Рассмотрим суть метода на примере для 123 × 456 с "разрезанием" на k = 3 части.
Представим числа как многочлены от х:
A(x) = 1∙x² + 2∙x + 3 (это 123 при x=10)
B(x) = 4∙x² + 5∙x + 6 (это 456 при x=10)
Нам нужно найти C(x) = A(x) ∙ B(x).
Выберём 2k–1 удобных значений m (например: 0, 1, –1, 2, ∞).
Вычисляем A(m) и B(m) для каждого m:
m=0: A(0)=3, B(0)=6 → C(0)=3∙6=18;
m=1: A(1)=1+2+3=6, B(1)=4+5+6=15 → C(1)=6∙15=90;
m=–1: A(–1)=1–2+3=2, B(–1)=4–5+6=5 → C(–1)=2∙5=10;
m=2: A(2)=1∙4+2∙2+3=11, B(2)=4∙4+5∙2+6=32 → C(2)=11∙32=352;
m=∞ ( старший коэффициент): 1∙4=4 → C(∞)=4.
Теперь мы знаем значения C(m) в 5 точках. Задача — восстановить коэффициенты многочлена C(x) = c₄∙x⁴ + c₃∙x³ + c₂∙x² + c₁∙x + c₀, который проходит через эти точки. Это решается системой уравнений или с помощью интерполяционных формул.
Осталось подставить значение x=10 — найденные коэффициенты c₄, c₃, c₂, c₁, c₀ дадут цифры результата!
(Для нашего примера C(10) = c₄∙10000 + c₃∙1000 + c₂∙100 + c₁∙10 + c₀ = 56088.)
Вместо одного сложного умножения гигантов мы делаем много маленьких умножений (A(m) ∙ B(m)). Для больших n маленькие умножения делаются гораздо быстрее.
Сложность метода O(n^(logₖ (2k–1))). Для k=3 это ~O(n¹’⁴⁶⁵) — быстрее метода Карацубы. Чем больше k, тем лучше асимптотика, но растут накладные расходы (интерполяция). Тоома–Кука обычно используют для чисел среднего размера между Карацубой и следующим монстром.
Метод используют библиотеки больших чисел (GMP), где Карацуба уже тормозит.
🔥10👍4❤2
6️⃣ Метод Шёнхаге–Штрассена (1971 г.). Как и в методе Тоома–Кука, представляем наши гигантские числа как многочлены. Умножить числа — значит перемножить их многочлены.
В основе метода — Быстрое Преобразование Фурье.
Оно работает как переход в "удобную систему координат" (спектральную область). Используя БПФ, мы быстро (за O(n log n)) переводим коэффициенты каждого многочлена-числа в новое представление — его спектр (набор комплексных амплитуд на разных "частотах"). Ключевое: базисные векторы этого спектрального пространства ортогональны.
Именно в этом ортогональном базисе операция свёртки (которая и соответствует умножению многочленов, а значит, и чисел!) превращается в простое поэлементное умножение спектров. Это фундаментальное свойство БПФ!
Это требует O(n) операций.
С помощью обратного БПФ, которое тоже работает за O(n log n), мы переводим результирующий спектр обратно в коэффициенты многочлена-произведения (т.е. в цифры результата).
Для реализации БПФ на астрономически больших числах требуется глубокая рекурсия с особыми числовыми модулями; эта рекурсивная организация добавляет множитель log log n, давая финальную сложность O(n log n log log n).
Для невероятно больших n это гораздо лучше Тоома-Кука и Карацубы.
Этот метод стал ключом к вычислению триллионов знаков числа π.
В основе метода — Быстрое Преобразование Фурье.
Оно работает как переход в "удобную систему координат" (спектральную область). Используя БПФ, мы быстро (за O(n log n)) переводим коэффициенты каждого многочлена-числа в новое представление — его спектр (набор комплексных амплитуд на разных "частотах"). Ключевое: базисные векторы этого спектрального пространства ортогональны.
Именно в этом ортогональном базисе операция свёртки (которая и соответствует умножению многочленов, а значит, и чисел!) превращается в простое поэлементное умножение спектров. Это фундаментальное свойство БПФ!
Это требует O(n) операций.
С помощью обратного БПФ, которое тоже работает за O(n log n), мы переводим результирующий спектр обратно в коэффициенты многочлена-произведения (т.е. в цифры результата).
Для реализации БПФ на астрономически больших числах требуется глубокая рекурсия с особыми числовыми модулями; эта рекурсивная организация добавляет множитель log log n, давая финальную сложность O(n log n log log n).
Для невероятно больших n это гораздо лучше Тоома-Кука и Карацубы.
Этот метод стал ключом к вычислению триллионов знаков числа π.
❤7🔥7
7️⃣ Галактический Алгоритм (2019 г.). Математики Дэвид Харви и Йорис ван дер Ховен доказали: умножение можно выполнить за O(n log n)! Это теоретически оптимально — быстрее нельзя, ведь прочитать числа уже O(n).
В основе метода — представление чисел не обычными многочленами, а гиперболическими. Это позволяет работать с данными более "плотно". Используется не обычное преобразование Фурье над комплексными числами, а его высокоточные обобщения над конечными полями (арифметика по модулю большого простого числа). Ключ — найти достаточно большое простое число особой формы, чтобы точно представить все промежуточные результаты.
Пока это чисто теоретический результат. Константы в O-большое огромны. Алгоритм станет практическим только для чисел настолько больших, что они не встречаются в реальных вычислениях сегодня, и, наверное, никогда не встретятся: с 10^10¹⁸ цифрами — это далеко за пределами нашей Вселенной!
Поэтому пока метод встречается только в математических журналах. Это прорыв в теории, показывающий, что O(n log n) достижимо. Практики ждут упрощений и оптимизаций (или новых прорывов).
Математика умножения — путь от клинописных табличек до алгоритмов для чисел галактического масштаба. Каждый метод — не просто ускорение вычислений, а преодоление барьеров сложности, казавшихся непреодолимыми.
В основе метода — представление чисел не обычными многочленами, а гиперболическими. Это позволяет работать с данными более "плотно". Используется не обычное преобразование Фурье над комплексными числами, а его высокоточные обобщения над конечными полями (арифметика по модулю большого простого числа). Ключ — найти достаточно большое простое число особой формы, чтобы точно представить все промежуточные результаты.
Пока это чисто теоретический результат. Константы в O-большое огромны. Алгоритм станет практическим только для чисел настолько больших, что они не встречаются в реальных вычислениях сегодня, и, наверное, никогда не встретятся: с 10^10¹⁸ цифрами — это далеко за пределами нашей Вселенной!
Поэтому пока метод встречается только в математических журналах. Это прорыв в теории, показывающий, что O(n log n) достижимо. Практики ждут упрощений и оптимизаций (или новых прорывов).
Математика умножения — путь от клинописных табличек до алгоритмов для чисел галактического масштаба. Каждый метод — не просто ускорение вычислений, а преодоление барьеров сложности, казавшихся непреодолимыми.
🔥12❤5
Какое минимальное количество умножений требуется выполнить, чтобы возвести число а в 47 степень?
Anonymous Quiz
19%
7
9%
8
17%
9
5%
10
7%
22
20%
46
23%
И на что мне эта 47-я степень?
❤4👍3
Задача 1. Римский император Тиберий родился 16 ноября 42 г. до н.э., а умер 16 марта 37 г. н.э.
Сколько полных лет он прожил?
Сколько полных лет он прожил?
Anonymous Quiz
24%
77
38%
78
22%
79
11%
80
5%
53 (по Фоменко-Носовскому Тиберий – это Иван Грозный)
😁7🔥4
Задача 2. В одном германском архиве нашли контракт, датированный "последним днём февраля 1900 года". Стороны договорились, что обязательство должно быть исполнено ровно через 1 (один) календарный месяц после подписания. Какой датой должно было быть исполнено обязательство?
Обязательство должно было быть исполнено…
Anonymous Quiz
36%
28 марта
20%
29 марта
8%
30 марта
26%
31 марта
10%
1 апреля
❤4
Задача 3. Компания постановила: "Каждый сотрудник, состоявший в штате компании на момент наступления 21-го века, получит премию". Вася устроился работать в компанию 2 января 1990 года, а уволился 31 декабря 2000 года. Должен ли он получить премию?
👍1
👍2
Задача 4. Самолёт вылетает из Токио (часовой пояс UTC+9) в среду, 16 июля, в 22:00 по местному времени. Прямой перелёт в Лос-Анджелес (часовой пояс UTC–8) занимает ровно 10 часов. В какой день недели и в какое (местное) время самолёт приземлится в Лос-Анджелесе?
❤2
Гениальность и безумие
Гениальность и безумие — понятия, которые в математике часто переплетаются, создавая тонкую грань между пророчеством и разрушением. Яркими символами этой драматической двойственности являются судьбы Джона Нэша и Теодора Качинского.
Нэш, работы которого по теории игр перевернули научное представление о стратегическом мышлении, долгие годы боролся с шизофренией, видя в числах заговоры и тайны, которые одновременно вдохновляли и терзали его разум. Его жизнь напоминала борьбу между математической рациональностью и бредом преследования: его гениальность проявлялась в способности находить порядок в хаосе, а безумие — в убеждённости, что этот порядок был частью заговора. Внутренняя борьба позволила ему вернуться к науке, но цена — многолетнее отчуждение и страдание — осталась неизмеримой.
Качинский же, вундеркинд, поступивший в Гарвард в 16 лет, а затем ставший преподавателем математики в Беркли, выбрал иной путь. Его отрыв от общества, начавшийся с переезда в уединённую хижину, завершился переходом к террору. Логика, которой он придерживался, воплотилась в «Манифесте Унабомбера» — философском сочинении, обвиняющем технологии в уничтожении природы и отчуждении человека. Однако путь, который он избрал для реализации своей идеи — рассылка бомб по почте (16 посылок, 3 погибших, 23 раненых), — превратила абстрактные размышления в насилие. В отличие от Нэша, который стремился восстановить связь с реальностью, Качинский сознательно отверг её, превратив математическую точность в инструмент разрушения.
Где заканчивается гениальность и начинается патология? Нэш, несмотря на галлюцинации, оставался частью научного сообщества, тогда как Качинский выбрал изоляцию и террор. Гениальность не гарантирует добродетели. Она лишь обостряет до предела то, что уже есть в человеке — его свет или его тьму.
Ещё один пример — Георг Кантор, создатель теории множеств. Яростное неприятие его идей о бесконечности со стороны многих современников, отсутствие понимания и поддержки, усугубили его депрессию и привели к психическим кризисам.
Курт Гёдель, чьи революционные теоремы о неполноте перевернули основания математики, в старости, погружённый в паранойю и одержимый страхом быть отравленным, умер от голода.
Эти истории показывают: математика — не просто наука, а способ существования, в котором логика и безумие могут стать двумя сторонами одной истины.
Гениальность — это риск. Риск потерять себя в бесконечных уравнениях, в попытках объяснить необъяснимое, в борьбе за идеал, который может оказаться недостижимым. Но именно этот риск делает науку человечной, напоминая, что даже в самых абстрактных формулах живёт душа, способная на величие и падение. Пророк, безумец, преступник — какая формула верна для этих умов? Ответ на этот вопрос задаёт не только частные судьбы, но и общую формулу человечности в науке.
Гениальность и безумие — понятия, которые в математике часто переплетаются, создавая тонкую грань между пророчеством и разрушением. Яркими символами этой драматической двойственности являются судьбы Джона Нэша и Теодора Качинского.
Нэш, работы которого по теории игр перевернули научное представление о стратегическом мышлении, долгие годы боролся с шизофренией, видя в числах заговоры и тайны, которые одновременно вдохновляли и терзали его разум. Его жизнь напоминала борьбу между математической рациональностью и бредом преследования: его гениальность проявлялась в способности находить порядок в хаосе, а безумие — в убеждённости, что этот порядок был частью заговора. Внутренняя борьба позволила ему вернуться к науке, но цена — многолетнее отчуждение и страдание — осталась неизмеримой.
Качинский же, вундеркинд, поступивший в Гарвард в 16 лет, а затем ставший преподавателем математики в Беркли, выбрал иной путь. Его отрыв от общества, начавшийся с переезда в уединённую хижину, завершился переходом к террору. Логика, которой он придерживался, воплотилась в «Манифесте Унабомбера» — философском сочинении, обвиняющем технологии в уничтожении природы и отчуждении человека. Однако путь, который он избрал для реализации своей идеи — рассылка бомб по почте (16 посылок, 3 погибших, 23 раненых), — превратила абстрактные размышления в насилие. В отличие от Нэша, который стремился восстановить связь с реальностью, Качинский сознательно отверг её, превратив математическую точность в инструмент разрушения.
Где заканчивается гениальность и начинается патология? Нэш, несмотря на галлюцинации, оставался частью научного сообщества, тогда как Качинский выбрал изоляцию и террор. Гениальность не гарантирует добродетели. Она лишь обостряет до предела то, что уже есть в человеке — его свет или его тьму.
Ещё один пример — Георг Кантор, создатель теории множеств. Яростное неприятие его идей о бесконечности со стороны многих современников, отсутствие понимания и поддержки, усугубили его депрессию и привели к психическим кризисам.
Курт Гёдель, чьи революционные теоремы о неполноте перевернули основания математики, в старости, погружённый в паранойю и одержимый страхом быть отравленным, умер от голода.
Эти истории показывают: математика — не просто наука, а способ существования, в котором логика и безумие могут стать двумя сторонами одной истины.
Гениальность — это риск. Риск потерять себя в бесконечных уравнениях, в попытках объяснить необъяснимое, в борьбе за идеал, который может оказаться недостижимым. Но именно этот риск делает науку человечной, напоминая, что даже в самых абстрактных формулах живёт душа, способная на величие и падение. Пророк, безумец, преступник — какая формула верна для этих умов? Ответ на этот вопрос задаёт не только частные судьбы, но и общую формулу человечности в науке.
❤22❤🔥8🔥5🥴2👎1
Модели искусственного интеллекта, разработанные Google и OpenAI, впервые смогли преодолеть золотой порог Международной математической олимпиады (IMO), решив пять задач из шести. До этого момента ни одной ИИ-системе не удавалось достичь столь высокого результата на этом уровне соревнований. Обе компании применили универсальные модели рассуждений, которые обрабатывают математические задачи с помощью естественного языка. Это отличает их от предыдущих подходов, основанных на формальных языках и длительных вычислениях.
Всего в 66-й Международной математической олимпиаде, проходившей в Саншайн-Косте (Австралия), участвовали 641 школьник из 112 стран, 11% из них получили золотые медали.
Шесть участников, представлявших РФ, завоевали 5 золотых и 1 серебряную медаль. Участник российской сборной Иван Часовских стал обладателем абсолютного 1-го места (42 балла). Из всех участников олимпиады со всеми шестью задачами на полный балл справились всего 5 человек. Несмотря на прорыв в вычислительных возможностях ИИ, вершина по-прежнему остается за человеком.
Всего в 66-й Международной математической олимпиаде, проходившей в Саншайн-Косте (Австралия), участвовали 641 школьник из 112 стран, 11% из них получили золотые медали.
Шесть участников, представлявших РФ, завоевали 5 золотых и 1 серебряную медаль. Участник российской сборной Иван Часовских стал обладателем абсолютного 1-го места (42 балла). Из всех участников олимпиады со всеми шестью задачами на полный балл справились всего 5 человек. Несмотря на прорыв в вычислительных возможностях ИИ, вершина по-прежнему остается за человеком.
❤11🔥2🥰2👎1
Сегодня, 24.07.2025, отмечается день теоремы Пифагора. Он отмечается лишь тогда, когда сумма квадратов даты и месяца равна квадрату года: 24² + 7² = 25².
Правда, знаменитую теорему знали ещё до Пифагора (например, в Вавилоне и Египте), но именно школа Пифагора придала ей строгое доказательство и всеобщую известность.
Праздник бывает не каждый год. Всего 12 дней на век. В январе, феврале и ноябре дней Пифагора не бывает, зато в августе — дважды, а в декабре — трижды за столетие. Чем больше делителей у номера месяца, тем больше шансов иметь день Пифагора.
Сегодня чествуем не только гипотенузы и катеты, но и красоту математических законов, которые работают везде — от древнего папируса до космических расчетов!
Задача. Когда был предыдущий день Пифагора и когда будет следующий?
Ответ: предыдущий день был16.12.2020 , а следующий будет 24.10.2026 .
Правда, знаменитую теорему знали ещё до Пифагора (например, в Вавилоне и Египте), но именно школа Пифагора придала ей строгое доказательство и всеобщую известность.
Праздник бывает не каждый год. Всего 12 дней на век. В январе, феврале и ноябре дней Пифагора не бывает, зато в августе — дважды, а в декабре — трижды за столетие. Чем больше делителей у номера месяца, тем больше шансов иметь день Пифагора.
Сегодня чествуем не только гипотенузы и катеты, но и красоту математических законов, которые работают везде — от древнего папируса до космических расчетов!
Задача. Когда был предыдущий день Пифагора и когда будет следующий?
Ответ: предыдущий день был
❤9👍4🎉3🔥2🥰1🍾1
Forwarded from Математическая эссенция
Сколько лично Вы знаете способов доказательства теоремы Пифагора?
В статье опубликованы самые наглядные и красивые!
В статье опубликованы самые наглядные и красивые!
Telegraph
Наглядные способы доказательства теоремы Пифагора
Теорема Пифагора — самая известная и самая важная теорема геометрии. Причина её популярности заключена в её простоте, красоте и широчайшей применимости. В самом деле, теорема Пифагора проста, но не очевидна. Это сочетание двух противоречивых начал делает…
🔥11