Ой ты, гой еси, добрый молодец али красна девица!
В детстве я очень любил книгу Марка Твена "Янки из Коннектикута при дворе короля Артура". Приключения хитрого и технически одаренного янки, попавшего в средневековую Британию забавляли.
Уже будучи взрослым, я, вспоминая это легендарное произведение, неизменно задавался вопросом: а смог бы я на месте этого янки, так же как он, вспомнить и воспроизвести достижения современной мне цивилизации.
Конечно, компьютер я бы не создал, но хотя бы порох? Или двигатель внутреннего сгорания? Для этого нужны расчеты, математические и физические формулы. И, конечно, техническая смекалка. Годы шли и я приходил к выводу, что янки Марка Твена - уникум, который сохранил в голове знания естественных и социальных наук, полученные еще в школе, чем я, к сожалению, не могу похвастать. Но все равно, раз за разом мысленно возвращаясь к этой ситуации, возникал вопрос: смогу ли я воспроизвести хоть что-то в условиях отсутствия интернета, учебников и справочников? Ну хоть самую малость? Ну хотя бы посчитать число π?...
По всем признакам для всех окружностей в мире это число имело одно и то же значение, вопрос только - какое? Проблема состояла в том, что люди древности знали только один класс нецелых чисел - рациональные. То есть числа, которые можно представить в виде дроби
где n и m - целые числа.
Соответственно математики того времени начали искать эти пресловутые n и m и были немало удивлены тем, что какие бы n и m они ни брали, получалось лишь приблизительное значение числа π.
Из глубины веков до нас дошло множество формул для вычисления приблизительного значения числа π, например
Месопотамия:
древний Египет, 2000 лет до н.э.:
Архимед, III век до н.э.:
Клавдий Птолемей, II век н.э.:
Цзу Чунчжи, V век н.э.:
Фундаментальная проблема ученых прошлого состояла в том, что они искали рациональное число π, не догадываясь о его истинной природе. Наиболее значительным достижением в этом направлении можно считать исследование Архимеда, который изучая вписанные и описанные вокруг окружности многоугольники пришел к следующему результату:
или
Очень неплохой результат для того времени. По сути, Архимед, если использовать современную терминологию, пытался найти предел периметра многоугольника, вписанного в окружность, при количестве граней, стремящемся к бесконечности. Идея поистине гениальная, если учесть, что до открытия собстственно пределов оставалось каких-то пару тысяч лет.
Тем не менее, древних математиков преследовала неудача. Лишь в 1761 году Иоган Ламберт строго доказал, что число π нельзя представить в виде
то есть число π - иррациональное.
А в 1882 году Линдеманом было доказано, что не существует такого многочлена с рациональными коэффициентами, корнем которого является число π. То есть число π не может быть представлено с помощью конечной последовательности применения арифметических операций и взятия корней. Такие числа назвали трансцендентными.
Именно аномальный характер числа π не позволил математикам древности понять его истинную природу: им просто не хватило чисел на числовой оси, чтобы описать его.
Таким образом, исследование числа π в течении тысяч лет продвигало математиков в понимании истинной сути чисел вообще.
И многие многие другие.
Когда вы читаете в новостях, что очередная команда математиков-программистов рассчитала число π с точностью до очередного миллиарда знаков после запятой, помните, что скорее всего используется формула Чудновского:
Чтобы приблизительно посчитать число π, можно провести описанный выше эксперимент, вычислить частоту пересечений и, подставив ее в формулу вместо вероятности p, получить значение числа π:
Метод иглы Буффона, конечно, не самый быстрый способ нахождения числа π, но он не требует серъезной математической подготовки, лишь терпение и время.
Площадь круга при этом равна
Вместо того, чтобы разбрасывать по дому песчинки, а потом долго и утомительно их подсчитывать, напишем программу, которая делает это за нас:
Заключение
В детстве я очень любил книгу Марка Твена "Янки из Коннектикута при дворе короля Артура". Приключения хитрого и технически одаренного янки, попавшего в средневековую Британию забавляли.
Уже будучи взрослым, я, вспоминая это легендарное произведение, неизменно задавался вопросом: а смог бы я на месте этого янки, так же как он, вспомнить и воспроизвести достижения современной мне цивилизации.
Конечно, компьютер я бы не создал, но хотя бы порох? Или двигатель внутреннего сгорания? Для этого нужны расчеты, математические и физические формулы. И, конечно, техническая смекалка. Годы шли и я приходил к выводу, что янки Марка Твена - уникум, который сохранил в голове знания естественных и социальных наук, полученные еще в школе, чем я, к сожалению, не могу похвастать. Но все равно, раз за разом мысленно возвращаясь к этой ситуации, возникал вопрос: смогу ли я воспроизвести хоть что-то в условиях отсутствия интернета, учебников и справочников? Ну хоть самую малость? Ну хотя бы посчитать число π?...
Можно без преувеличения сказать, что число π - рок звезда уже на протяжении нескольких тысячелетий. С ним связаны и шутки и сложные теоремы из высшей алгебры и курьезные законы. Но обо всем по порядку.
Самое неправильное число
Исторически, число π определяется как результат деления длины окружности на ее диаметр. То есть:
где n и m - целые числа.
Соответственно математики того времени начали искать эти пресловутые n и m и были немало удивлены тем, что какие бы n и m они ни брали, получалось лишь приблизительное значение числа π.
Из глубины веков до нас дошло множество формул для вычисления приблизительного значения числа π, например
Месопотамия:
древний Египет, 2000 лет до н.э.:
Архимед, III век до н.э.:
Клавдий Птолемей, II век н.э.:
Цзу Чунчжи, V век н.э.:
Фундаментальная проблема ученых прошлого состояла в том, что они искали рациональное число π, не догадываясь о его истинной природе. Наиболее значительным достижением в этом направлении можно считать исследование Архимеда, который изучая вписанные и описанные вокруг окружности многоугольники пришел к следующему результату:
или
Очень неплохой результат для того времени. По сути, Архимед, если использовать современную терминологию, пытался найти предел периметра многоугольника, вписанного в окружность, при количестве граней, стремящемся к бесконечности. Идея поистине гениальная, если учесть, что до открытия собстственно пределов оставалось каких-то пару тысяч лет.
Тем не менее, древних математиков преследовала неудача. Лишь в 1761 году Иоган Ламберт строго доказал, что число π нельзя представить в виде
то есть число π - иррациональное.
А в 1882 году Линдеманом было доказано, что не существует такого многочлена с рациональными коэффициентами, корнем которого является число π. То есть число π не может быть представлено с помощью конечной последовательности применения арифметических операций и взятия корней. Такие числа назвали трансцендентными.
Именно аномальный характер числа π не позволил математикам древности понять его истинную природу: им просто не хватило чисел на числовой оси, чтобы описать его.
Таким образом, исследование числа π в течении тысяч лет продвигало математиков в понимании истинной сути чисел вообще.
Точная формула
Несмотря на свою аномальность, число π оказалось поистине вездесущим. Существует множество формул для вычисления сколь угодно точного значения числа π, приведу лишь несколько из них:
И многие многие другие.
Когда вы читаете в новостях, что очередная команда математиков-программистов рассчитала число π с точностью до очередного миллиарда знаков после запятой, помните, что скорее всего используется формула Чудновского:
Вероятностные методы
Как ни странно, число π можно вычислить и не используя геометрические и алгебраические методы. Одним из таких методов является метод иглы Бюффона.
Представим себе плоскость, расчерченную параллельными прямыми линиями, которые находятся на расстоянии 4см друг от друга. Будем случайным образом бросать на эту плоскость иголку длиной 3см. Согласно теории вероятности, вероятность того, что иголка пересечет одну из линий составляет
Чтобы приблизительно посчитать число π, можно провести описанный выше эксперимент, вычислить частоту пересечений и, подставив ее в формулу вместо вероятности p, получить значение числа π:
В 1864 году некий капитан Фокс, выздоравливая после ранения, провел такой эксперимент и получил следующие результаты:
Число бросаний |
Число пересечений
|
Частота пересечений | Вычисленное значение числа π |
---|---|---|---|
500 | 236 | 0,472 | 3,178 |
530 | 253 | 0,477 | 3,142 |
Метод иглы Буффона, конечно, не самый быстрый способ нахождения числа π, но он не требует серъезной математической подготовки, лишь терпение и время.
Метод Монте-Карло
Чтобы найти значение числа π, можно воспользоваться методом Монте-Карло. Допустим у нас есть квадрат со стороной 2x. Если мы впишем в него окружность, то ее радиус будет равен x.
Площадь такого квадрата равна
Площадь круга при этом равна
Разделив две площади друг на друга, получим:
А отсюда можно получить, что
Предположим, что мы случайным образом бросаем на нарисованные квадрат с кругом множество песчинок. Тогда можно предположить, что
где N1 - число песчинок, попавших внутрь круга, а N2 - число песчинок, попавших внутрь квадрата.
Тогда, можно считать, что
Тогда, можно считать, что
Вместо того, чтобы разбрасывать по дому песчинки, а потом долго и утомительно их подсчитывать, напишем программу, которая делает это за нас:
import java.security.SecureRandom;
public class Main {
public static void main(String[] args) {
//Генератор случайных песчинок
SecureRandom random = new SecureRandom();
//Число разбросанных внутри квадрата песчинок.
int n2 = 50_000;
//Число песчинок, попавших внутрь круга
int n1 = 0;
//Радиус круга, равный половине стороны квадрата
int r = 10;
//Разбрасываем песчинки внутри квадрата,
//находящегося в центре системы координат и со стороною равной 10.
for (int index = 0; index < n2; index++) {
//x-координата может быть от -10 до 10
//(метод random.nextDouble() возвращает случайное число от 0 до 1)
double x = r - 2 * r * random.nextDouble();
//y-координата может быть от -10 до 10
double y = r - 2 * r * random.nextDouble();
//По теореме пифагора вычисляем квадрат расстояния до песчинки от центра координат
//Если он меньше, чем квадрат радиуса окружности - песчинка внутри круга
if (x * x + y * y <= r * r) {
n1 += 1;
}
}
//Вычисляем число Пи по формуле
double pi = 4. * n1 / n2;
System.out.println("pi = " + pi);
}
}
Разбросав по квадрату 50 000 песчинок, я получил:
pi = 3.13952
Хм, неплохо, конечно, но хочется большего... А если 500 000 песчинок?
pi = 3.140384
Уже лучше, не останавливаемся: 5 000 000 песчинок!
pi = 3.141184
Только теперь мы получили результат, который хотя бы точностью до 3 знаков после запятой совпадает с правильным значением. Ну, никто не говорил, что будет легко. 50 000 000 песчинок!
pi = 3.14164184
На этом я остановлюсь, но более стойким предлагаю продолжить самостоятельно=)
С помощью этой статьи я основательно подготовился к перемещению во времени во времена короля Артура. Я вооружен множеством способов рассчитать число π (осталось только вызубрить формулу Чудновского) и продемонстрировать свою математическую и инженерную подготовку. К тому же, я просто помню, что число π = 3, 1415926, а это - аж 7 знаков после запятой.
А сколько знаков помните вы?
Комментариев нет:
Отправить комментарий