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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 48, средняя оценка - 4.94
Stas12
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 102
#1

Метод Монте-Карло - C++

22.04.2012, 21:55. Просмотров 6745. Ответов 3
Метки нет (Все метки)

как мне перевести этот код на с++..... помогите пожалуста((
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 program MonteKarlo;
 uses crt;
 Label l1,l2;
 var
 j1,j,a,b,c,n1,k,n:integer;
 I,Y,x:real;
 Begin
 randomize;
 clrscr;
 writeln('Vvod znachenii');
 write('a = ');
 Read(a);
 write('b = ');
 Read(b);
 write('n = ');
 Read(n);
 writeln('--------------------------------');
 writeln('| k | integral | vsego ispitani|');
 for j:=1 to 9 do
 begin
 I:=0;
 for j1:=1 to n do
 begin
 x:=a+(b-a)*random;
 I:=I+x*x+5*x;
 end;
 I:=I*(b-a)/n;
 writeln('--------------------------------');
 writeln('| ',j,' | ',i:2:6,' | ',n,' |');
 {writeln(' Integral = ',i:6:7,' vsego ispitani = ',n,' popalo pod function = ',n1);}
 end;
 writeln('--------------------------------');
 readkey;
 end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2012, 21:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод Монте-Карло (C++):

Метод Монте-Карло - C++
Помогите написать программу для вычисления определенного интеграла методом Монте-Карло.

метод Монте-Карло - C++
всем привет, у меня вопрос по методу Монте - Карло, у меня есть код, #include <stdlib.h> #include <iostream> #include <time.h> ...

Метод Монте-Карло - C++
Помогите написать программу на С++. Из множества 1, 2, ..., n, случайным образом извлекается с возвращением по одному числу S раз. Пусть...

метод Монте-Карло - C++
Трехмерное тело образовано объединением нескольких сфер произвольного размера и взаимного расположения. Найти объем этого тела, используя...

Метод монте Карло - C++
Здравствуйте! Посмотрите, пожалуйста, почему программа неправильно считает определенный интеграл методом Монте Карло. Считаю интеграл от -3...

вроде метод монте карло - C++
распишите пожалуйста что делает это программа?? int i,a,b,n,k,c,d,e,f; double s1,s,x,y,z; int _tmain(int argc, _TCHAR* argv) { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
22.04.2012, 22:36 #2
код кривой и не рабочий

Если "дословно" перевести
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <ctime>
 
int main()
{
    system("cls");
    srand( time(NULL) );
    int j1 , j, a, b, n, n1=0, k;
    double I, Y, x;
    //std::cout<< "Translit eto ne ok";
    std::cout<< "Input values: \na = ";
    std::cin>> a;
    std::cout<< "b = ";
    std::cin>> b;
    std::cout<< "n = ";
    std::cin>> n;
    std::cout<< "------------------------\n";
    std::cout<< "| k | integral | tests |\n";
    for (j = 1; j <= 9; j++)
    {
        I = 0;
        for (j1 = 1; j1 <= n; j1++)
        {
            x = a + (b - a) * rand()%100/100;
            I += x*x + 5*x;
        }
        I *= (b - a) / n;
        std::cout<< "------------------------\n";
        std::cout<< "| "<< j<< " | "<< std::setw(2)<< std::setprecision(6)<< i<< " | "<< n<< " |\n";
        std::cout<< " Integral = "<< std::setw(6)<< std::setprecision(7)<< i<< "  tests = "<< n<< "  function satisfies = "<< n1;
    }
    std::cout<< "------------------------\n";
    getch();
    return 0;
}
0
Stas12
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 102
22.04.2012, 23:07  [ТС] #3
нашел программу метода монте карло не пойму что означает Zmax

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
 
 
double f( double x, double y ) {
    return ((x*x+1)/(x*x*x*x-x*x+1));
}
 
int main() {
 
    srand( time ( NULL ) );//чтобы генерированые числа в рандоме не повторялись
   
 
    double Zmax = 0., t, x = 0., y, z;//объявление переменных
    double SumINTEGR = 0., INTEGR = 0., averINTEGR;
    int i, j, HIT;
 
    for ( i = 0; i < 100; ++i ) {
 
        y = 0.;
 
        for ( j = 0; j < 100; ++j ) {
            if( Zmax < ( t = f( x, y ) ) )
                Zmax = t;
            y += 0.01;
        }
        x +=0.01;
    }
 
 
    for( i = 0; i < 10; ++i ) {
 
        // Число попаданий точек в искомый объем под поверхностью функции
        HIT = 0;
 
        //Значение интеграла
        INTEGR = 0.;
 
        for( j = 0; j < 183065; ++j ) {
 
           x = (double) ( rand() ) / RAND_MAX;//заполняем x  в интервале 0 1
           y = (double) ( rand() ) / RAND_MAX;
           z = (double) ( rand() ) * 10.0 / RAND_MAX;
 
            if( z <= f( x, y ) )//проверка
                ++HIT;
 
        }
 
        INTEGR = (double) HIT / 183065. * 10.;
        SumINTEGR += INTEGR;//значение интеграла
    }
 
    // Среднее значение интеграла в 10 случаях
    averINTEGR = SumINTEGR / 10.;
 
    printf( "Значение интеграла   = %lf\n", averINTEGR );
    printf( "Z максимальное       = %lf\n", Zmax );
 getch ();
    return 0;
}
Добавлено через 35 секунд
что это за переменная?? и зачем она вообще нужна?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
22.04.2012, 23:52 #4
Задание вам дали не для того, чтобы вы скопипастили более-менее рабочий код, а чтобы научились программировать. Будут ошибки в вашей программе - обращайтесь.

И используйте наконец теги форматирования кода, проявите уважение к участникам форума.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2012, 23:52
Привет! Вот еще темы с ответами:

Метод Монте Карло (неправильные значения) - C++
Пишу программу для подсчета определенного интеграла 3мя способами: прямоугольников, трапеций и Монте Карло. Первые 2 реализованы правильно,...

Метод Монте-Карло. Объем сферы - C++
Задан радиус сферы и количество итераций. Найти объём сферы методом Монте-Карло и определить точность

Метод Монте-Карло в вычислении площади многоугольника - C++
Ребята, добрый день!! Мне нужно набросать программу для вычисления площади выпухлого n-угольника с использованием ООП и STL; Помогите...

Метод Монте-Карло(непонятная неработоспособность программы) - C++
Написал программу, которая вычисляет интеграл методом Монте-Карло. Вроде как код проверял, перепроверял и должно быть всё верно. Но при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.04.2012, 23:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru