Форум программистов, компьютерный форум CyberForum.ru

Вычисление площади методом Монте-Карло - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ нужна опция gcc, которая позволяет вызывать функцию точки входа в скомпилированной dll http://www.cyberforum.ru/cpp-beginners/thread693487.html
Кропаю dll: /*A.cpp*/ #include <stdio.h> #include <windows.h> #ifdef BUILD_DLL // the dll exports #define EXPORT __declspec(dllexport) #else
C++ Распараллелить скалярное произведение векторов Задание - распараллелить скалярное произведение векторов. вектора vec1 и vec2 заполняются не рандомом для однозначности результата. в общем все работает,но препод впихнул симуляцию задержки 1го потока (в нашем случае который выполняет 10ую итерацию), и все накрывается. не знаю как это исправить (место обозначено (!!!)). пробывал поставить барьеры - не работает. как решить проблему? нельзя... http://www.cyberforum.ru/cpp-beginners/thread692634.html
Обходы графа C++
Ребят, помогите с курсачом по Дискретной математике. Задача у меня такая: Имеется N городов, соединенных сетью дорог. Заданы длины участков дорог между парами городов. Спроектировать структуру телефонной сети с минимальной стоимостью затрат на ее строительство, если считать, что стоимость участка сети между двумя городами пропорциональна расстоянию между ними. Правильно ли я понимаю, если...
Вычислить Минимальный элемент массива, сумму элементов между первым и последним положительными элементами C++
В одномерном массиве, состоящем из N действительных элементов, вычислить: 1) Минимальный элемент массива. 2) Сумму элементов массива, расположенных между первым и последним положительными элементами. Превратить массив таким образом, чтобы сначала располагались все элементы, равные нулю, а затем - остальные. В одновимірному масиві, що складається з N дійсних елементів, обчислити: ...
C++ Преобразование и построение матриц http://www.cyberforum.ru/cpp-beginners/thread690329.html
кто может объяснить все строчки !? #include <stdio.h> #include <math.h> #include <conio.h> #include <stdlib.h> #include <time.h> int main() {
C++ Обработка строк указателем Обработка строк при помощи указателей. Здравствуйте Помогите, пожалуйста, решить задачу. Для ввода строк использовать один и тот же символьный массив tmp.Обработку строк производить при помощи указателей внутри выделенного блока памяти. Запрещается использовать дополнительные массивы или блоки. Создать текстовую функцию main(), которая реализует след. алгоритм: 1. Объявить и ввести... подробнее

Показать сообщение отдельно
isaak
101 / 38 / 9
Регистрация: 17.10.2010
Сообщений: 634
12.11.2012, 23:12  [ТС]     Вычисление площади методом Монте-Карло
Суть метода начал понимать: Фигура лежит внутри некоторой области известной площади So. Случайным образом кидаем n точек в эту область. Подсчитываем количество m точек попавших внутрь фигуры (внутрь хотя бы одного прямоугольника). Площадь искомой фигуры Sf = So * m / n. Чем больше точек, тем точнее результат. Но как это реализовать программно тем более на C++ ума не приложу????

Добавлено через 4 минуты
Вот что еще удалось найти, но это только сухая теория: "Предположим, что нам нужно вычислить площадь плоской фигуры S.
Это может быть совсем произвольная фигура с криволинейной границей, заданная графически или аналитически, связная или состоящая из нескольких кусков. Пусть это будет фигура, изображенная на рис. 1, и предположим, что она вся расположена внутри единичного квадрата.
Выберем в квадрате N случайных точек. Обозначим через N' число точек, попавших при этом внутрь S. Геометрически очевидно, что площадь S приближенно равна отношению N'/N. Чем больше будет N, тем больше будет точность этой оценки.
Например,выбрано N=40 точек. Из них N'=12 точек оказались внутри фигуры S. Отношение N'/N=12/40=0,30, в то время как истинная площадь S равна 0,35).
Две особенности метода Монте-Карло. Первая особенность метода — простая структура вычислительного алгоритма. Как правило, составляется программа для осуществления одного случайного испытания (в примере надо выбрать случайную точку в квадрате и проверить, принадлежит ли она S). Затем это испытание повторяется N раз, причем каждый опыт не зависит от всех остальных, и результаты всех опытов усредняются.
Поэтому иногда метод Монте-Карло называют методом статистических испытаний.
Вторая особенность метода: ошибка вычислений, как правило пропорциональна , где D – некоторая постоянная, a N – число испытаний. Из этой формулы видно, что для того, чтобы уменьшить ошибку в 10 раз (иначе говоря, чтобы получить в ответе еще один верный десятичный знак), нужно увеличить N (то есть объем работы) в 100 раз.
Ясно, что добиться высокой точности на таком пути невозможно. Поэтому обычно говорят, что метод Монте-Карло особенно эффективен при решении тех задач, в которых результат нужен с небольшой точностью (5-10%)."

Добавлено через 50 минут
Гипербола - http://www.cyberforum.ru/cgi-bin/latex.cgi?x * y = {a}^{2} и прямая - http://www.cyberforum.ru/cgi-bin/latex.cgi?x + y = \frac{5}{2} * a, проходящая в верхней полуплоскости оси Y. Площадь фигуры полученной при пересечении этих кривых находится в I-ой четверти полуплоскости XOY. Подскажите пожалуйста как это реализовать на C++???? Заранее огромное спасибо.
 
Текущее время: 23:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru