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

Поиск оптимального решения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Двумерная трехкомпонентная экологическая модель http://www.cyberforum.ru/cpp-beginners/thread1148426.html
Есть задача: В океане разбросаны острова, на которых растет трава, и водятся зайцы и волки. Зайцы кушают травку, а волки поедают зайцев. Волки и зайцы являются водоплавающими и могут перебираться с острова на остров в поисках пищи. Трава на острове растет с некоторой скоростью. Волки и зайцы рождаются в результате естественного процесса (если в некоторой близости оказались самец и...
C++ Не работает цикл Не могу понять почему не работает цикл. Объясните, пожалуйста. #include <iostream> using namespace std; int main(int argc, char *argv) { int num_1, lim_1, lim_2, lim_3, lim_4; http://www.cyberforum.ru/cpp-beginners/thread1148424.html
C++ Методы решения систем нелинейных уравнений с++
У меня есть задание реализовать метод решения систем нелинейных уравнений гибридный метод (Зейдель-Ньютон) Внешние итерации — по Зейделю и внутренние — по Ньютону. Перечитал много теоретического материала... понял как реализовать метод зейделя, и понял как реализовать метод ньютона... А вот как их объединить не могу понять и что значит внешние и внутренние итерации... Люди пожалуйста помогите и...
Найти сумму положительных и отрицательных элементов матрицы C++
найти сумму положительных и отрицательных элементов матрицы
C++ Создать динамический список, организовать запись данных в текстовый файл и вывод их из файла http://www.cyberforum.ru/cpp-beginners/thread1148414.html
В общем, суть такова: есть 2 отдельные программы — одна создаёт динамический список и выводит его на экран; другая — записывает вводимые данные в текстовый файл и выводит их оттуда же. Суть в том, что мне нужно их объединить: и чтобы в файл записывала/выводила, и чтобы список динамический был. Вот запись в файл: struct DATE {int d, mnth, yr;}; struct NEWSP {char nm; int edtn, prc; DATE...
C++ Как правильно выполнить задание? В программу должно вводиться предложение. Если предложение заканчивается пробелом с точкой, пишем "да" , иначе пишем "нет" string read() { string ret = " "; char token = ' '; cin >> token; ret = ret + token; cin >> token; ret = ret + token; подробнее

Показать сообщение отдельно
shikari
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 14
14.04.2014, 20:52     Поиск оптимального решения
Поиск оптимального решения: критерий Ходжа Лемана и оптимистический критерий. Помогите разобраться в коде (написать комментарии)

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
77
78
79
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
//---------------------------------------------------------------------------
void main()
{
const int n=20, m=10;
double eG[n][m+1],c,eGmax,max[n],min[n],q,sa;
double eO[n][m+1],eOmax,maxO[n];
int i,j,k[n],kmax;
//---------------------------------------------------------
//Критерий Ходжи-Лемана
c=0.3;
q=0.5;
for (i=0;i<n;i++)           
{ for (j=0;j<m;j++)
    eG[i][j]=rand()+0.0;
}
for (i=0;i<n;i++)
   {
    max[i]=eG[i][0];
    min[i]=eG[i][0];
   for (j=0;j<m;j++)
     {
      sa=0;
      if(eG[i][j]>max[i]) max[i]=eG[i][j];  
      if(eG[i][j]<min[i]) min[i]=eG[i][j];  
      sa=sa+q*eG[i][j];
     }
   eG[i][m]=c*sa+(1-c)*min[i];    
   }
eGmax=eG[0][m];
for (i=0;i<n;i++)
 if (eG[i][m]>eGmax) eGmax=eG[i][m];  
 j=0;
 for (i=0;i<n;i++)
 if (eG[i][m]==eGmax) {k[j]=i;j++;}
 kmax=j;
for (i=0;i<n;i++)                     
{ for (j=0;j<m;j++)
   cout<<eG[i][j]<<" ";
   cout<<" | "<<eG[i][m]<<" | "<<i+1<<endl;
}
cout<<"eGmax="<<eGmax<<endl;
for(j=0;j<kmax;j++)
cout<<" б®бв®п*ЁҐ "<<k[j]+1<<endl;
 getch();
//---------------------------------------------------------------------------
//"Оптимистический метод"
 
for (i=0;i<n;i++)
   {
    maxO[i]=eO[i][0];
    for (j=0;j<m;j++)
     {
      if(eG[i][j]>maxO[i]) maxO[i]=eG[i][j]; 
     }
   eO[i][m]=maxO[i];
   }
eOmax=eG[0][m];
for (i=0;i<n;i++)
 if (eG[i][m]>eOmax) eOmax=eG[i][m];
 j=0;
 for (i=0;i<n;i++)
 if (eG[i][m]==eOmax) {k[j]=i;j++;}
 kmax=j;
for (i=0;i<n;i++)
{ for (j=0;j<m;j++)
   cout<<eG[i][j]<<" ";
   cout<<" | "<<eG[i][m]<<" | "<<i+1<<endl;
}
cout<<"eOmax="<<eOmax<<endl;
for(j=0;j<kmax;j++)
cout<<" б®бв®п*ЁҐ "<<k[j]+1<<endl;
cout<<"*__________________________________________________*"<<endl;
 getch();
}
Миниатюры
Поиск оптимального решения  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru