Вопрос знатокам программирования и математики.

компьютеры программирование программы математика Наука

У меня есть вот такая задача(ниже будет решение мое):
Вычисление числа пи методом Монте-Карло.
Рассмотрим квадрат с длиной стороны равной единице, в который вписана четверть окружности единичного радиуса. Отношение площадей четверти круга к площади квадрата будет пропорционально отношению равномерно распределенных в диапазоне от 0 до 1 случайно сгенерированных координат X и Y, попавших в четверть круга, к общему числу количества испытаний, т.е.
(площадь четверти круга/площадь квадрата)=m/n
m - число случайно сгенерированных координат, попавших в четверть круга, n - общее число испытаний.
Мое решение на pascal:
uses crt;
var n,m,i:integer;x,y:real;
begin
randomize;
writeln('введи количество экспериментов');
readln(n);
for i:=1 to n do begin
x:=random;y:=random;
if x*x+y*y<=1 then m:=m+1;
end;
writeln(4*(m/n));
end.
А вопрос заключается в том что правильно ли то, что в программе получаются иногда значения пи точнее при меньших количествах экспериментов.Или так не должно быть?

Ответы:
Иногда - конечно может быть. Но чем больше экспериментов тем точнее значение должно быть
Ключевое слово - "иногда".
Блин... Метод Монте-Карло - это "математический метод рандома". Т.е. мы (в данном случае Вы) угадываем (именно угадываем) ответ по некоторым математическим операциям.
Чем больше итераций - тем точнее "угадывание" ответа. Но т.к. мы угадываем, то нам может повезти, и до нужно точности мы дойдем за небольшое число шагов.
>> Или так не должно быть?
Чтобы разобраться самому - почитай на википедии про этот метод.
>> Отношение площадей четверти круга к площади квадрата будет пропорционально отношению равномерно распределенных в диапазоне от 0 до 1 случайно сгенерированных координат X и Y, попавших в четверть круга, к общему числу количества испытаний, т.е.
(площадь четверти круга/площадь квадрата)=m/n
Т.е. что ты тут делаешь - русским языком? А вот что:
ты случайно кидаешь вектор (палку) на заданный круг, и считаешь сколько раз нужный конец попал туда куда нужно.
Это равносильно угадыванию ответа. Но в данном случае - метод работает (хотел написать обоснован, но не стал - т.к. метод Монте-Карло - не является математически обоснованным!)
drafff я не согласен метод достаточно обоснован (разберипесь с формулой рандома) в диапазоне от 0 до 1 средняя сумма должна = 0.5
и если рандом работает как надо считайте что этот квадрат мы разбили на маленькие равные площадки и посчитали площадки в кругу и вне его и чем больше опытов мы делаем тем считайте эти площадки меньше а значит точность пи больше ! Повторяю если формула рандома хорошая!!! а сделать такую формулу это целая наука!
> А вопрос заключается в том что правильно ли то, что в программе получаются иногда значения пи точнее при меньших
> количествах экспериментов.Или так не должно быть?
Если речь идёт о 10-ках испытаний, то нет. Из простого отношения m/n видно, что разница между n=10000 и n=10001 не существенна, в то время как между n=10 и n=11 уже очень. Советую просто построить график изменения значений pi от кол-во испытаний, а лучше целую серию графиков, это вам наглядно покажет как работают статистические методы.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.