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

Ошибка - HIT обнуляются. Метод Монте-Карло для двойного интеграла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ VS 2008 c++ программы не запускается на других компьютерах http://www.cyberforum.ru/cpp-beginners/thread1157081.html
Всем привет, извините тема такая подымалась, смотрел, не помогло. Мне нужна четкая последовательность действий. Уже пол гугла перелопатил(неделю искал) форум почитал. Но что-то типа "делай через relis" или "делай статическую линковку" не принемаются. С++ офигенный язык программирования, но у меня не получается сделать так чтобы приложение запускалось на других компьютерах. Вот что прислал...
C++ Семантическая сеть Здравствуйте. Есть идея создать семантическую сеть для представления знаний. Имеется порядка 1000 объектов(узлов) и 50 видов отношений(дуг). На каждый узел может приходить и уходить(учитывается направленность) от 0 до 100 дуг от других объектов. В какой форме записать эти узлы и отношения между ними? http://www.cyberforum.ru/cpp-beginners/thread1157079.html
C++ Глобальный хук клавиатуры
Привет. Мне нужно сделать глобальный хук клавиатуры, но я не знаю как. В интернете примеров на C++ мало и все не работают, потому что люди тоже задают вопросы. Расскажите, с чего начать и если можно работающий и понятный пример.
C++ Структура ORDER. Проверить код на ошибки
Может помочь с ошибкой и проверить правильно ли все работает)) Описать структуру с именем ORDE: Записи должны быть размещены в алфавитном порядке по расчетным счетам плательщиков. Вывод на экран о сумме снятой с расчетного счета плательщика веденного с клавиатуры. Если такого счет нет то выдать такого расчетного счета нет #pragma hdrstop #pragma argsused #include <tchar.h> #include...
C++ Перегрузка операций http://www.cyberforum.ru/cpp-beginners/thread1157016.html
Опишите пожалуйста строки(их действие и роль в программе); #include <iostream> #include <cstring> #include <fstream> using namespace std; class String{ private: char *m_Str; // указатель на строку с нулём на коце
C++ Дана квадратная матрица A[n,n] b вектор b[n]. Определить сумму положительных элементов вектора c=b*A Дана целочисленная квадратная матрица A порядка n и вектор b размером n. Определить сумму положительных элементов вектора c=b*A подробнее

Показать сообщение отдельно
Gmails
6 / 6 / 2
Регистрация: 08.04.2014
Сообщений: 248

Ошибка - HIT обнуляются. Метод Монте-Карло для двойного интеграла - C++

25.04.2014, 17:45. Просмотров 183. Ответов 0
Метки (Все метки)

пожалуйста помогите найти ошибку.она заключена в HIT,они обнуляются.метод монте-карла для двойного интеграла.
вот код:
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
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h> 
#include<iostream>
#include <time.h> 
#include<clocale>
#include<math.h>
using namespace std;
 int main(){
    setlocale(LC_CTYPE, "");
    srand((unsigned)time(NULL));
    printf("Функция: z=y*y*sqrt(R*R-x*x)\n");
    float R=3;
    float x,y;
    float Zmax=0;
    for(x=-R;x<=R;x=x+0.01)
    {
    for(y=-sqrt(R*R-x*x);y<=sqrt(R*R-x*x);y=y+0.01)
    {
if(Zmax<(float)(y*y*sqrt(R*R-x*x)))
            {
                Zmax=(float) (y*y*sqrt(R*R-x*x));
            }
        }
    }
    
    float SumINTEGR=0;//Сумма интегралов за 10 опытов
    
    for(int i=1;i<=10;i++)
        {
         float X,Y,Z;// Рандомные точки 
         int HIT=0;// Число попаданий точек в искомый объем под поверхностью функции
          //Значение интеграла
           float INTEGR=0;
            for(float N=1;N<=183065;N++)
            {
                X=(float)(rand()%101)/100;
                Y=(float)(rand()%101)/100;
                Z=(float)(rand()%101)/100;
    
                if(Z<=(y*y*sqrt(R*R-x*x)))
                    {
                        ++HIT;
                    }
            }
            cout<<HIT<<endl;
            INTEGR=(float)HIT/183065*10;
            SumINTEGR=SumINTEGR+INTEGR;
        }
    
    float averINTEGR=SumINTEGR/10;// Среднее значение интеграла в 10 случаях
    printf("Значение интеграла - %f\n", averINTEGR);
    
    printf("Z максимальное - %f",Zmax);
    getch();
 
}
Добавлено через 1 час 54 минуты
up!

Добавлено через 1 час 6 минут
как записать границу ((1-x*x)^(1/2))?

Добавлено через 1 час 25 минут
up!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru