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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Shim
25 / 25 / 1
Регистрация: 21.11.2009
Сообщений: 159
#1

посчитать интеграл...найти ошибку в программе - C++

30.01.2010, 20:02. Просмотров 1780. Ответов 10
Метки нет (Все метки)

Написал прогу, работает, но препод сказал что неправильно, в чём ошибка-то ?
Собственно задание: написать программу, которая считает интеграл 1-x*x на интервале [-1;1] методом Монте-Карло (на лекциях этой темы не было).

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
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
 
double func(double x)
{
    return 1-x*x; 
}
 
int main()
{
    int point_a = -1; 
    int point_b = 1;
    int number_of_random=0; 
    double s=0; 
    printf("how much random points? ");
    scanf("%ld",&number_of_random); 
    srand((unsigned)time(NULL));
    for (int i=0;i<number_of_random;i++) 
    {
         s+=func(point_a+((double)rand()/RAND_MAX*(point_b-point_a))); 
    }
    s=s/(double)number_of_random*(point_b-point_a); 
    printf("\nintegral %f \n",s);
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2010, 20:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос посчитать интеграл...найти ошибку в программе (C++):

Найти ошибку в программе. Интеграл по формуле Симпсона, - C++
посмотрите правильно ли выполнил задание // Lab14Y.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; ...

Не могу найти ошибку в программе, вычисляющей определенный интеграл по методу трапеций - C++
Написал программу для вычисления интеграла от x^(1/3) в пределах от -1 до 8. На выходе выдает нули и бесконечности:( Подскажите плиз в чем...

Найти ошибку в программе: в visual studio выдает ошибку - C++
#include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int main() { double x, E, ypred, y, S; ...

Массивы. Посчитать количество положительных, найти минимальное, удалить строку с минимальным (Не могу найти ошибку) - C++
// Заданы матрицы X(8;4),Y(5;5),Z(6;9). // Для каждой из матриц определить строку, в которой находится наименьшее // количество...

Найти ошибку в программе - C++
#include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;vector&gt; using namespace std; int main(){ int n; cin&gt;&gt;n; vector&lt;int&gt;...

найти ошибку в программе - C++
Программа должна обеспечивать ввод с клавиатуры числа от 0 до 255 (типа unsight char), переводить его в двоичную систему, а далее в...

10
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
30.01.2010, 20:22 #2
у вас для последней итерации считает исп. массив s[2] например.
0
Shim
25 / 25 / 1
Регистрация: 21.11.2009
Сообщений: 159
31.01.2010, 16:34  [ТС] #3
мне нужно сгенерировать 2 случайных числа, координаты, по оси x от [-1;1], по оси y [0;1]; дальше определять, попадает точка в область, площадь которой нужно найти, или нет. Суть в том что надо посчитать площадь, а я не знаю как исправить то что у меня написано((

Добавлено через 19 часов 32 минуты
генерирование случайного числа от 0 до 1 выглядит так:
C++
1
double(rand())/RAND_MAX*1.0
а как сгенерировать от -1 до 1 ?
0
Shim
25 / 25 / 1
Регистрация: 21.11.2009
Сообщений: 159
09.02.2010, 01:23  [ТС] #4
Друзья мои, неужели никто не подскажет ?))


Цитата Сообщение от Sekt Посмотреть сообщение
у вас для последней итерации считает исп. массив s[2] например.
что-то я совсем не улавливаю ход Ваших мыслей, можно поподробней ?
0
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
09.02.2010, 10:04 #5
C++
1
y = rand()%2-1
1
Shim
25 / 25 / 1
Регистрация: 21.11.2009
Сообщений: 159
10.02.2010, 12:37  [ТС] #6
Цитата Сообщение от Darky Посмотреть сообщение
C++
1
y = rand()%2-1
спасибо) на неделе посидел, попробовал, это же эквивалентно тому варианту что предложили Вы ?

C++
1
y = 2.0*rand()/RAND_MAX-1.0
0
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
10.02.2010, 14:10 #7
Нет, не эквивалентно.
1
Shim
25 / 25 / 1
Регистрация: 21.11.2009
Сообщений: 159
10.02.2010, 15:02  [ТС] #8
Цитата Сообщение от Darky Посмотреть сообщение
Нет, не эквивалентно.
омг!!! ладно, а для интервала (0;1) верно ? :

C++
1
y = rand()/RAND_MAX*1.0
0
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
11.02.2010, 13:47 #9
А зачем такие заморочки?
C++
1
y = rand()%2;
1
Shim
25 / 25 / 1
Регистрация: 21.11.2009
Сообщений: 159
11.02.2010, 15:37  [ТС] #10
Цитата Сообщение от Darky Посмотреть сообщение
А зачем такие заморочки?
C++
1
y = rand()%2;
мдэ...дюже просто получается)) спасибо.
0
Shim
25 / 25 / 1
Регистрация: 21.11.2009
Сообщений: 159
13.02.2010, 17:47  [ТС] #11
Цитата Сообщение от Darky Посмотреть сообщение
C++
1
y = rand()%2-1
фигня какая-то...препод сказал что это(то что Вы написали) возвращает нам или -1 или 0. А то что написал я
C++
1
x = 2.0*rand()/RAND_MAX-1.0; /*генерируем значаение от {-1;1}*/
- верно) Короче экзамен сдал
0
13.02.2010, 17:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2010, 17:47
Привет! Вот еще темы с ответами:

Найти ошибку в программе - C++
#include &lt;stdafx.h&gt; #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;fstream&gt; #include &lt;ctime&gt; using namespace std; int...

Найти ошибку в программе - C++
Где ошибка в программе: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; #include &quot;conio.h&quot; #include &quot;string&quot; ...

Найти ошибку в программе - C++
Решаю задачу: Вот мой код: #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; int main()

Найти ошибку в программе - C++
Найти к-е число Фибоначчи,такое,что x(k-1)&lt;a&lt;x(k). Числа Фибоначчи:x(1)=x(2)=1;x(k)=x(k-2)+x(k-1) #include &quot;stdafx.h&quot; #include...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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