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

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

Войти
Регистрация
Восстановить пароль
 
Маринусик
0 / 0 / 0
Регистрация: 29.04.2013
Сообщений: 18
#1

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

05.06.2013, 09:58. Просмотров 281. Ответов 0
Метки нет (Все метки)

Написала код программы для этой задачи,а она выдает ошибку,подскажите что не так.И не прописала два последних условия- E-сбит ровно один истребитель,F-сбит ровно один самолет


Происходит воздушный бой между бомбардировщиком и двумя атакающими его истребителями. Стрельбу начинает бомбардировщик: он дает по каждому истребителю один выстрел и сбивает его с вероятностью р1. Если данный истребитель не сбит, то он независимо от судьбы другого стреляет по бомбардировщику и сбивает его с вероятностью р2. Определить вероятности следующих исходов боя:
А- сбит бомбардировщик
В- сбиты оба истребителя
С -сбит хотя бы один истребитель
D-сбит хотя бы один самолет
E-сбит ровно один истребитель
F-сбит ровно один самолет


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
66
67
68
69
70
71
72
73
74
75
76
#include <iostream>
#include <math.h>
 
using namespace std;
 
void main()
{
    float r1,r2,r3, r4, r5, r6, r7, r8, r9;
    int ma=0, mb=0, mc=0, md=0, me=0, mf=0;
    double P1=0.2;
    double P2=0.3;
    int n=1000;
    
    //cout<<(double)(rand() % 100) / 100;
    for(int i = 0; i < n; i++)
    {   
        r1 = (float)(rand() % 100) / 100;
        r2 = (float)(rand() % 100) / 100;
        //сбит бомбардировщик
        if(r1 < P1)
        {   
            r3 = (float)(rand() % 100) / 100;
            if(r3 < (1 - P1))
            {
                r5 = (float)(rand() % 100) / 100;
                if (r5 < P2) 
                    ma ++;
                else break;
            }
            else break;
        }
        else (r2 < P1)
        {
            r4 = (float)(rand() % 100) / 100;
              if(r4 < (1 - P1))
              {
                  r6 = (float)(rand() % 100) / 100;
                  if (r6 < P2) 
                      ma++;
                  else break;
              }
        }
        //сбиты оба истребителя
        if (r3 < (1 - P1) && r4 < (1 - P1))
        {
            r7 = (float)(rand() % 100) / 100;
            if( r7 < P1)
                mb++;
        }
        //сбит хотя бы один истребитель
        else if (r3 < (1 - P1) || r4 < (1 - P1))
        {
            r8 = (float)(rand() % 100) / 100;
            if( r8 < P1)
                mc++;
        }
        //сбит хотя бы один самолет
        else if (r5 < P1 || r6 < P1 || r3 < (1 - P1) || r4 < (1 - P1) )
        {
            r9 = (float)(rand() % 100) / 100;
            if( r9 < P1 || r9 < P2)
                md = ma + mc;
        }
        //сбит ровно один истребитель
        //сбит ровно один самолет
    }
    cout<<endl;
    cout<<ma / n;
    cout<<endl;
    cout<<mb / n;
    cout<<endl;
    cout<<mc / n;
    cout<<endl;
    cout<<md / n;
    cout<<endl;
    system("pause");
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2013, 09:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод Монте-Карло (C++):

Метод Монте-Карло - C++
как мне перевести этот код на с++..... помогите пожалуста(( program MonteKarlo; uses crt; Label l1,l2; var ...

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2013, 09:58
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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