Вычисление числа Пи методом Монте-Карло
Существует много способов вычисления числа Пи. Самым простым и понятным является численный метод Монте-Карло, суть которого сводится к простейшему перебору точек на площади. Суть расчета заключается в том, что мы берем квадрат со стороной a = 2 R, вписываем в него круг радиусом R. И начинаем наугад ставить точки внутри квадрата. Геометрически, вероятность P1 того, чтот точка попадет в круг, равна отношению площадей круга и квадрата:
P1=Sкруг / Sквадрата = πR 2 / a 2 = πR 2 / (2 R ) 2 = πR 2 / (2 R) 2 = π / 4 (1)
Выглядит это так:
Вероятность попадания точки в круг можно также посчитать после численного эксперимента ещё проще: посчитать количество точек, попавших в круг, и поделить их на общее количество поставленных точек:
P2=Nпопавших в круг / Nточек; (2)
Так, при большом количестве точек в численном эксперименте вероятности должны вести себя cледующим образом:
lim(Nточек→∞)(P2-P1)=0; (3)
Следовательно:
π / 4 = Nпопавших в круг / Nточек; (4)
π =4 Nпопавших в круг / Nточек; (5)
НО! При моделировании мы применяем псевдослучайные числа, которые не являются случайным процессом.
Поэтому, выражение (5), к сожалению, строго не выполняется. Логичны вопросы, каковы оптимальные размеры квадрата и как много нужно применить точек?
Чтобы это выяснить, я написал такую программу:
Программа выводит значения числа Пи в зависимости от радиуса и количества точек. Единственное, что остается читателю, это скомпилировать её самостоятельно и запустить с параметрами, которые желает он.
Приведу лишь одну таблицу с полученными значениями:
| Радиус | Nточек | Pi |
| 102400 | 204800 | 3,145664 |
| 102400 | 409600 | 3,137188 |
| 102400 | 819200 | 3,139326 |
| 102400 | 1638400 | 3,144478 |
| 102400 | 3276800 | 3,139875 |
| 102400 | 6553600 | 3,142611 |
| 102400 | 13107200 | 3,140872 |
| 102400 | 26214400 | 3,141644 |
| 102400 | 52428800 | 3,141217 |
| 102400 | 1,05E+08 | 3,141324 |
| 102400 | 2,1E+08 | 3,141615 |
| 102400 | 4,19E+08 | 3,141665 |
| 102400 | 8,39E+08 | 3,141724 |
| 102400 | 1,68E+09 | 3,141682 |
Если что, значение числа Пи можно посмотреть с точностью до определенного знака здесь.
Источник картинки — википедия.
Как вычислить число пи на компьютере
Самый простой и легкий в реализации метод.
Рассмотрим произвольный квадрат с центром в начале координат и вписанный в него круг. Будем рассматривать только первую координатную четверть. В ней будет находиться четверть круга и четверть квадрата. Обозначим радиус круга r, тогда четверть квадрата тоже будет квадратом(очевидно) со стороной r.
Будем случайным образом выбирать точки в этом квадрате и считать количество точек, попавших в четверть круга. Благодаря теории вероятности мы знаем, что отношение попаданий в четверть круга к попаданиям ‘в молоко’ равно отношению площадей — пи/4. Вот, собственно, и весь алгоритм. Чем больше взятых наугад точек мы проверим, тем точнее будет отношение площадей.
Вот простенькая программа на Паскале, считающая пи этим способом. Четыре первых знака требуют на моем PentiumII-300 около 5 минут.
Однако, как говорил Козьма Прутков, ‘нельзя объять необъятное’, что, в применении к данному случаю, можно перефразировать так: нельзя просуммировать бесконечное число слагаемых за конечное время, каким бы быстрым компьютером мы не располагали.
Слава Богу, этого и не требуется. Поскольку мы хотим найти не точное значение PI, а лишь его приближение с пятью верными десятичными знаками, нам достаточно просуммировать такое количество первых членов ряда, чтобы сумма всех оставшихся членов не превышала 10 -5 .
Остался, правда, открытым вопрос о том, сколько же все-таки членов ряда нужно просуммировать, чтобы получить результат с требуемой точностью?
Ответ на этот вопрос в ‘общем виде’ выходит далеко за рамки настоящего обсуждения. Это отдельная тема в курсах математического анализа и численных методов.
К счастью, данный конкретный ряд позволяет найти очень простое правило, позволяющее определить момент, когда следует прекратить суммирование. Дело в том, что ряд Грегори является знакопеременным и сходится равномерно (хотя и медленнее, чем хотелось бы). Это означает, что для любого нечетного n , сумма первых n членов ряда всегда дает верхнюю оценку для PI, а сумма n +1 первых членов ряда — нижнюю.
Значит, как только разница между верхней и нижней оценками окажется меньше, чем требуемая точность, можно смело прекращать вычисления и быть уверенным, что как та, так и другая оценки отличаются от истинного значения PI не более, чем на 10 -5 . В качестве окончательного результата разумно взять среднее значение между полученными верхней и нижней оценками. Таким образом, можно предложить алгоритм, приведенный ниже.
При реализации этого алгоритма на машине следует помнить, что ряд Грегори сходится достаточно медленно, и поэтому n может принимать довольно большие значения.
Для вычисления сколько-нибудь большого количества знаков пи предыдущий способ уже не годится. Но существует большое количество последовательностей, сходящихся к Пи гораздо быстрее. Воспользуемся, например, формулой Гаусса:
| p | = 12arctan | 1 | + 8arctan | 1 | — 5arctan | 1 |
| 4 | 18 | 57 | 239 |
Доказательство этой формулы несложное, поэтому мы его опустим.
Исходник программы, включающий в себя ‘длинную арифметику’
Программа вычисляет NbDigits первых цифр числа Пи. Функция вычисления arctan названа arccot, так как arctan(1/p) = arccot(p), но расчет происходит по формуле Тейлора именно для арктангенса, а именно arctan(x) = x — x 3 /3 + x 5 /5 — . x=1/p, значит arccot(x) = 1/p — 1 / p 3 / 3 + . Вычисления происходят рекурсивно: предыдущий элемент суммы делится и дает следующий.
Конечно, это не самые эффективные способы вычисления числа пи. Существует еще громадное количество формул. Например, формула Чудновского (Chudnovsky), разновидности которой используются в Maple. Однако в обычной практике программирования формулы Гаусса вполне хватает, поэтому эти методы не будут описываться в статье. Вряд ли кто-то хочет вычислять миллиарды знаков пи, для которых сложная формула дает большое увеличение скорости.
Число пи на клавиатуре и в Word
Существует несколько способов ввода числа Пи, как с клавиатуры компьютера, так и с помощью простого копирования. Опишем, как проще всего написать число Пи.
Способ — 1.
Вот символ числа Пи — π . Просто скопируйте его и вставьте в свой документ.
Способ — 2, для PC.
Нажмите клавишу Alt и не отпуская ее введите код символа числа π — "960" или "227", отпустите "Alt". Клавиша Alt находится в нижней части, как правило, слева и справа от клавиши "Пробел". Цифровой код нужно вводить с помощью цифровой клавиатуры находящейся спава.
Способ — 3, для MAC
Нажмите клавишу "Option" и не отпуская клавишу "P", появится символ числа Пи.
Способ — 4, получение числа Пи в Ворде или в другом текстовом редакторе
В Word-е, в окне выбора шрифта, выберите шрифт Symbol и нажмите букву "P".
Способ — 5, таблица символов.
В операционной системе Windows необходимо открыть программу "Таблица символов". Для этого воспользуйтесь меню "Пуск" — "Все программы" — "Служебные". В таблице символов выбираем нужный нам шрифт и ищем символ числа Pi в огромном многообразии различных символов.
Кстати, не со всеми шрифтами символ числа Пи будет корректно отображаться. Лучше всего для этого подходит шрифт "Times New Roman".
Как заставить ПК вычислить число пи максимально точно?
Привет ЛОР. Как вычислить точное число Пи? Зачем? Да интересно стало сколько его будет вычислять мой ПК (cpu точнее, расчеты на gpu не берем). В идеале хотелось бы задать много-много знаков, ну хотя бы 20к знаков числа Пи как вычислить? В программировании я ноль.
Линукс тут при том, что вычисления будут вестись в нем, ведь всем известно, что все супер-пупер компьютеры работают на Линуксе.

Его нельзя вычислить максимально точно, оно иррациональное.

Можно, если работать с системой счисления с подходящим основанием — например, с пи-ической.

Выбирай свой любимый язык программирования:
П.С. Гугл знает всё!

В идеале хотелось бы задать много-много знаков, ну хотя бы 20к знаков числа Пи как вычислить?

Прекрати прогуливать уроки. Твой учитель математики вам об этом рассказывал.
ты ноль не только в программировании.

Математику я прогуливал когда она была в школе, мне она не нравилась. А сейчас на заочке на вышмате упомянули про число Пи, вот я и задумался.

вычисляй сразу pi^e

А чем это круче чем вычисление числа Пи? Я помню что это как то связано с Эйлером.

Забавный факт. При попытке открыть в браузере файл с числом Пи вычисленным с точностью до миллиарда ПК завис. Файрфокс последний, cpu ryzen 1500x. Пишу с xiaomi.

одно трансцендентное иррациональное число в степени другого иррационального трансцендентного числа — это разве не весело?

Мда, выглядит мощно.

Так ты мазохист?

Почему ты так решил?

Математику я прогуливал когда она была в школе, мне она не нравилась. А сейчас на заочке на вышмате
Или я что не понял.
Я вот в школе терпеть не мог только одну вещь — русский язык и литературу. Как вспомню про сочинения, аж в дрожь с тошнотой бросает. Вот бы поступил на филологический 😀

Хах, у меня наоборот. Я был самый читающий в школе, меня даже награждали за это, книгу подарили из библиотеки, лол, поэтому русский язык и литература были вообще не проблемой, я их тупо знал, даже не учил. А вот математику я быстро освоить не могу как это требовали на уроке, а дома изучать скучно было, компа и интернета к тому же не было, я просто обкладывался книгами и читал. Фантастику всегда любил, научную, про космос там, будущее.
