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

Объясните пожалуйста что означает произвольная RSH - C++

Восстановить пароль Регистрация
 
kazrulit
16 / 16 / 1
Регистрация: 07.04.2010
Сообщений: 145
03.04.2013, 16:04     Объясните пожалуйста что означает произвольная RSH #1
Мне задали написать программу "Реализация симплекс метода с произвольной RHS". Симплекс метод понятен, а RHS не знаю что такое.
З.Ы прошу админов исправить ошибку в теме не RSH, RHS
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nexen
03.04.2013, 17:09
  #2

Не по теме:

Тут была сказана глупость

kazrulit
16 / 16 / 1
Регистрация: 07.04.2010
Сообщений: 145
03.04.2013, 17:19  [ТС]     Объясните пожалуйста что означает произвольная RSH #3
Цитата Сообщение от nexen Посмотреть сообщение

Не по теме:

Тут была сказана глупость

Спасибо за обличение.
Вот этот код подходит для моей задачи?
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#include <iostream>
using namespace std;
 
int main ()
{
 int n, k, st,sv ;
 int i = 0, j = 0;
 double **mas;
 
 setlocale (LC_CTYPE, "rus");
 
 cout << "Введите количесво строк массива(к-во у-й): ";
 cin >> st; //Число строк
 n=st+1;
 
 cout <<"Введите количесво столбцов массива(к-во х): ";
 cin >>sv; //Число столбцов
 k=sv+n;
 
 mas = new double*[n]; //Выделение памяти под n-строк
 
 for(i = 0; i < n; i++)
   {
     mas[i] = new double[k]; //Выделение памяти для каждой строки по k-столбцов 
   }
 
 for(i = 0; i < n; i++)
    {
        if (i<n-1)    
          cout <<"Введите коэффициенты(значения базисных переменных,свободные члены) "<<i+1<<" -го ур-ия"<<endl;
        else 
          cout <<"Введите целевую функцию с ОТРИЦАТЕЛЬНЫМ ЗНАКОМ: "<<endl;  
        for(j = 0; j < k; j++)
          {
            cout<< "mas["<< i<< "][" <<j <<"]="; //Ввод массива 
            cin>> mas[i][j];
          } 
     }
 
 //вывод массива
cout<<endl;
cout<<endl<<"***********************************"<<endl;
cout<<" Таблица: "<<endl;
int min;
  for(i = 0; i < n; i++)
    {     
      for(j = 0; j < k; j++)
        {          
          cout<< " "<<mas[i][j]<<" ";
        }
      cout<<" "<<endl;
    }
   cout<<endl<<"***********************************"<<endl;  
   
   int w=0;
   w=sv+1;
   
   //определяем оптимальность решения
int kpol=0;
 for (j = 0; j < k; j++)
    {
        if (mas[n-1][j]>0)
            kpol++; 
         }
// cout<<"kpol="<<kpol<<"\n";если в последней строчке 4 положительных числа,то мы нашли решение
    cout<<"целевая функция равняется"<<mas[n-1][k-1]<<"\n";
 
        while (kpol<w)   
        {
            kpol=0;
 
  // поиск минимального
min = 0;
  for (j = 1; j < sv; j++)
    if (mas[n-1][j] < mas[n-1][min]) min = j; 
  cout << " этот столбец ведущий "<<mas[n-1][min] << endl;
double t;
 
t=mas[n-1][min];
 
// поиск столбца
cout<<endl<<"***********************************"<<endl;
int myn=0;
double r=0,z=0; 
z=(mas[myn][k-1])/(mas[myn][min]);
  for (i= 1; i < st; i++)
      {
          r=  (mas[i][k-1])/(mas[i][min]);
      if (z>r) myn=i;
     }
  cout << "эта строка ведущая "<<mas[myn][k-1]<< endl;
  cout<<"строка"<<myn;
  cout<<endl<<"***********************************"<<"\n";
  cout <<"коэффицент"<<mas[myn][min]<<endl;
 
//деление на выбранный элемент
double l=0;
l=mas[myn][min];//для деления на коэффициент
for (j = 0; j < k; j++)
    {     
        mas[myn][j]=mas[myn][j]/l; 
    }
cout<<endl;
 
 //вывод массива
cout<<endl<<"***********************************"<<endl;
 cout<<endl;  
  for(i = 0; i < n; i++)
    {     
      for(j = 0; j < k; j++)
        {  
          cout<< " "<<mas[i][j]<<" ";
        }
        cout<<" "<<endl;
     }
 
 
//из элеметов соответствующих строк вычитаем элементы найденной нам строки
double p=0;
 for(i = 0; i < n; i++) 
    {
        p=mas[i][min];
            if (i!=myn)       
            {
                for(j = 0; j < k; j++)
                    {
                        mas[i][j]=mas[i][j]-mas[myn][j]*p;
                    }
            }
     }
 
 
 //вывод массива
cout<<endl<<"***********************************"<<endl;
 cout<<endl;  
  for(i = 0; i < n; i++)
    {     
      for(j = 0; j < k; j++)
        {  
          cout<< " "<<mas[i][j]<<" ";
        }
        cout<<" "<<endl;
     }
 
cout<<endl<<"***********************************"<<endl; 
//cout<<"целевая функция равняется"<<mas[n-1][k-1]<<"\n";
  for (j = 0; j < k; j++)
    {
        if (mas[n-1][j]>0)
            kpol++; 
 }  
  // cout<<"kpol="<<kpol<<"\n";если в последней строчке  положительных числа столько, сколько было x(+1 своб.член),то мы нашли решение
        }
        cout<<"решение оптимально,целевая функция равняется"<<mas[n-1][k-1]<<"\n";      
 system ("pause");
 return 0;
}
nexen
03.04.2013, 18:37     Объясните пожалуйста что означает произвольная RSH
  #4

Не по теме:

kazrulit, вы меня не так поняли Я написал глупость и затер её. Просто опустил местоимение "я" в своем сообщении. Ну или надо было его в ** взять



Не по теме:

Добавлено через 1 час 12 минут
Ну вот, теперь минусуют первое сообщение ;(

Yandex
Объявления
03.04.2013, 18:37     Объясните пожалуйста что означает произвольная RSH
Ответ Создать тему
Опции темы

Текущее время: 04:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru