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

Вычисление объема произвольного тела методом Монте-Карло - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти минимум, сумму http://www.cyberforum.ru/cpp-beginners/thread716696.html
1. Given a real numbers x, y, z. Calculate: min ( x + y, y + z ,z + x ) 2. Find the sum of 1/2+1/3+1/4+⋯+1/(n+1)Официальный язык форума - русский. Переведите условие задачи, и помните: один вопрос - одна тема. Добавлено через 5 минут С учетом действительных чисел х, у, г. Рассчитать: мин (х + у, у + z, z + х) Найти сумму 1/2+1/3+1/4+⋯+1/(n+1)
C++ Посчитать количество минимальных элементов массива Посчитать количество минимальных элементов целочисленного массива А. http://www.cyberforum.ru/cpp-beginners/thread716693.html
C++ Поменять местами элементы двумерного массива
Поменять местами элементы второй область с элементами третей области. Вот начало програмки. Дальше не знаю как делать. #include <iostream.h> #include <stdio.h> #include <conio.h> void main () {int A,i,j,n,m;
Поменять местами элементы двумерного массива C++
Поменять местами элементы второй область с элементами третей области. Вот начало програмки. Дальше не знаю как делать. #include <iostream.h> #include <stdio.h> #include <conio.h> void main () {int A,i,j,n,m;
C++ Принудительный выход из программы http://www.cyberforum.ru/cpp-beginners/thread716675.html
Привет! У меня такая проблемка: есть программа в которой реализовано главное меню(имеется цикл while а внутри цикла реализован switch) что то вроде: int menu; cin>>menu; while(true) { switch (menu) { case1:.......;
C++ Удалить все элементы массива с четными индексами Всем привет. Хотелось бы получить от вас помощь..написать программу си++.. создать динамический одномерный массив,содержащий x числовых элементов . используя оператор выбора ,выполнить удаление : удалить все элементы с четными индексами. Добавление:добавить k элементов в конец массива перестановка:поменять местами минимальные и максимальные элементы. поиск:найти первый отрицательный. подробнее

Показать сообщение отдельно
Shor Kun
0 / 0 / 0
Регистрация: 24.09.2015
Сообщений: 7
13.02.2016, 19:07     Вычисление объема произвольного тела методом Монте-Карло
Тема конечно уже умерла, но мне её выкинуло в поиске по методу Монте-Карло, когда искал решение для сына, и у него оказалась точно такая же задача, поэтому приведу всё-таки решение думаю кому-нибудь пригодиться.

Для начала кому непонятен сам метод вот толковое описание метод Монте-Карло. Итак для начала надо определиться с фигурой, вопреки мнению предыдущих авторов формулы задающие поверхность правильные и вот какая получается фигура:
Вычисление объема произвольного тела методом Монте-Карло
Прошу прощения за оформление рисовал вручную, до Matlab-a herb не дошли
Соответственно ограничивающей фигурой будет параллелепипед ABCDA1B1C1D1 в него и будем пихать наши точки, соответственно его объём как нетрудно вычислить равен 4.
Ну вот собственно и сама программа:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main(int argc, char** argv) {
    const double n=10000.0;
    double x,y,z;
    int c=0;
    for(int i=0;i<n;i++)
    {
     x=rand()%2001/1000.00-1;
     y=rand()%1001/1000.00;
     z=rand()%2001/1000.00;
     if ((y>=x*x)&&(z<=x*x+y*y))  c=c+1;
}
cout << c << endl;
cout << c/n*4 << endl;
cout << 88/105.0 << endl;
 
    return 0;
}
 
Текущее время: 03:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru