📄 cpp1.cpp
字号:
#include<iostream>
using namespace std;
int m,n;
int* s; //约束符号
int* ss;
char style;//目标函数类型
char styles;
int* b; //右端系数
int* bb;
int* f; //取值约束
int* ff;
int* c; //目标函数系数
int* cc;
int** A; //约束条件系数
int** AA; //结果
void Input()
{
int i,j;
A=new int* [m];
AA=new int* [n];
b=new int[m];
bb=new int[n];
f=new int[n];
ff=new int[m];
c=new int[n];
cc=new int[m];
s=new int[m];
ss=new int[n];
for(i=0;i<m;i++)
A[i]=new int[n];
for(i=0;i<n;i++)
AA[i]=new int[m];
for(i=0;i<m;i++)
{
cout<<"请输入第"<<(i+1)<<"个约束条件\n";
for(j=0;j<(n+2);j++)
{
if(j==n)
{
cout<<"请输入不等式符号(-1代表〈=,1代表〉=,0代表=):";
cin>>s[i];
}
else if(j==n+1)
{
cout<<"请输入右端系数:";
cin>>b[i];
}
else
{
cout<<"第"<<(j+1)<<"个变量系数:";
cin>>A[i][j];
}
}
}
for(j=0;j<n;j++)
{
cout<<"请输入第"<<(j+1)<<"个变量的取值约束(1代表>=0,0代表自由,-1代表<=0):";
cin>>f[j];
cout<<"请输入目标函数第"<<(j+1)<<"个变量系数:";
cin>>c[j];
}
}
void Output()
{
int i,j;
if(style=='a')
{
styles='i';
for(i=0;i<m;i++)
for(j=0;j<n;j++)
AA[j][i]=A[i][j];
for(i=0;i<m;i++)
{
switch(s[i])
{
case -1:
ff[i]=1;
break;
case 0:
ff[i]=0;
break;
case 1:
ff[i]=-1;
break;
}
cc[i]=b[i];
}
for(j=0;j<n;j++)
{
switch(f[j])
{
case -1:
ss[j]=-1;
break;
case 0:
ss[j]=0;
break;
case 1:
ss[j]=1;
break;
}
bb[j]=c[j];
}
}
else if(style== 'i')
{
styles='a';
for(i=0;i<m;i++)
for(j=0;j<n;j++)
AA[j][i]=A[i][j];
for(i=0;i<m;i++)
{
switch(s[i])
{
case -1:
ff[i]=-1;
break;
case 0:
ff[i]=0;
break;
case 1:
ff[i]=1;
break;
}
cc[i]=b[i];
}
for(j=0;j<n;j++)
{
switch(f[j])
{
case -1:
ss[j]=1;
break;
case 0:
ss[j]=0;
break;
case 1:
ss[j]=-1;
break;
}
bb[j]=c[j];
}
}
cout<<"对偶问题:\n";
if(styles=='i') cout<<"min\n";
else if(styles=='a') cout<<"max\n";
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<"+("<<AA[i][j]<<")y"<<(j+1);
switch(ss[i])
{
case -1:
cout<<"<=";
break;
case 0:
cout<<"=";
break;
case 1:
cout<<">=";
break;
}
cout<<bb[i];
cout<<"\n";
}
cout<<"目标函数:w=";
for(i=0;i<m;i++)
cout<<"+"<<cc[i]<<"y"<<(i+1);
cout<<"\n";
for(i=0;i<m;i++)
{
cout<<"y"<<(i+1);
switch(ff[i])
{
case -1:
cout<<"<=0\n";
break;
case 0:
cout<<"自由\n";
break;
case 1:
cout<<">=0\n";
break;
}
}
}
void main()
{
cout<<"目标函数类型(a代表max或i代表min):";
cin>>style;
cout<<"约束条件个数:";
cin>>m;
cout<<"变量个数:";
cin>>n;
Input();
Output();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -