Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cmath>
- using namespace std;
- void dump(int r1, int r2, int **m){
- for(int i=0;i<r1;i++){
- for(int j=0;j<r2;j++){
- cout << m[i][j] << " ";
- }
- cout << endl;
- }
- }
- void _tintil(int r1, int r2, int **m){
- for(int i=0;i<r1;i++){
- for(int j=0;j<r2;j++){
- m[i][j] =0;
- }
- }
- }
- int _tBaies(int r1, int r2, int **m){
- double **kopi_ma;
- kopi_ma = new double *[r1];
- for(int i = 0;i<r1;i++)
- kopi_ma[i] = new double [r2];
- for(int i = 0;i<r1;i++)
- for(int j = 0;j<r2;j++)
- kopi_ma[i][j]=m[i][j]/(double)r1;
- /*
- for(int i=0;i<r1;i++){
- for(int j=0;j<r2;j++){
- cout << kopi_ma[i][j] << " " ;
- }
- cout << endl;
- }
- */
- double *max_str;
- max_str = new double [r1];
- for(int j=0;j<r1;j++){
- max_str[j]=0;
- }
- for(int i=0;i<r1;i++){
- for(int j=0;j<r2;j++){
- max_str[i]+=kopi_ma[i][j];
- }
- }
- /*for(int i=0;i<r1;i++){
- for(int j=0;j<r2;j++){
- cout << kopi_ma[i][j];
- }
- cout << endl;
- }
- cout << endl;
- for(int i=0;i<r2;i++){
- cout << max_str[i] << " " ;
- }
- cout << endl;
- */
- double max=0;
- int strok=0;
- for(int i=0;i<r1;i++){
- if (max < max_str[i]){
- max = max_str[i];
- strok=i;
- }
- }
- return strok+1;
- }
- int _tWald(int r1, int r2, int **m){
- // min max aij
- int min=1000;
- int *min_str;
- min_str = new int [r2];
- for(int i=0;i<r1;i++){
- for(int j=0;j<r2;j++){
- if (min>m[i][j])
- min = m[i][j];
- }
- min_str[i]=min;
- min=1000;
- }
- ///for(int i=0;i<r1;i++)
- // cout << min_str[i] << " " ;
- int max=0,strok=0;
- for(int i=0;i<r1;i++){
- if (max<min_str[i]){
- max = min_str[i];
- strok=i;
- }
- }
- return strok+1;
- }
- int _tSevidj(int r1, int r2, int **m){
- int **ma;
- ma = new int *[r1];
- for(int i = 0;i<r1;i++)
- ma[i] = new int [r2];
- int max=0,strok=0;
- for(int i=0;i<r2;i++){
- for(int j=0;j<r1;j++){
- if (max<m[j][i])
- max=m[j][i];
- }
- for(int j=0;j<r1;j++)
- ma[j][i]=max-m[j][i];
- max=0;
- }
- int *max_str;
- max_str = new int [r2];
- max=0;
- for(int i=0;i<r1;i++){
- for(int j=0;j<r2;j++){
- if (max<ma[i][j])
- max = ma[i][j];
- }
- max_str[i]=max;
- max=0;
- }
- int min=1000;
- strok=0;
- for(int i=0;i<r1;i++){
- if (min > max_str[i]){
- min = max_str[i];
- strok=i;
- }
- }
- return strok+1;
- }
- int _tGurvic(int r1, int r2, int **m){
- double *maxJ;
- maxJ = new double [r1];
- for(int j=0;j<r1;j++){
- maxJ[j]=0;
- }
- double *minJ;
- minJ = new double [r1];
- for(int j=0;j<r1;j++){
- minJ[j]=1000;
- }
- for(int i=0;i<r1;i++){
- for(int j=0;j<r2;j++){
- if(maxJ[i]<m[i][j])
- maxJ[i]=m[i][j];
- }
- }
- for(int i=0;i<r1;i++){
- for(int j=0;j<r2;j++){
- if(minJ[i]>m[i][j])
- minJ[i]=m[i][j];
- }
- }
- /*
- for(int i=0;i<r1;i++){
- cout << minJ[i] << " " ;
- }
- cout << endl;
- for(int i=0;i<r1;i++){
- cout << maxJ[i] << " " ;
- }
- */
- double *max;
- max = new double [r1];
- double y=0.5;
- for(int i=0;i<r1;i++){
- max[i]= y * minJ[i] + (1-y) * maxJ[i];
- }
- /*
- for(int i=0;i<r1;i++){
- cout << max[i] << " " ;
- }
- */
- double max1=0;int strok=0;
- for(int i=0;i<r1;i++){
- if (max1<max[i]){
- max1 = max[i];
- strok=i;
- }
- }
- return strok+1;
- }
- int main()
- {
- int r1,r2;
- cin >> r1 >> r2;
- int **matrix;
- matrix = new int *[r1];
- for(int i = 0;i<r1;i++)
- matrix[i] = new int [r2];
- _tintil(r1, r2,matrix);
- ifstream read_file("input.txt");
- for(int i=0;i<r1;i++){
- for(int j=0;j<r2;j++){
- read_file >> matrix[i][j] ;
- }
- }
- read_file.close();
- dump(r1, r2,matrix);
- int Wald = _tWald(r1, r2,matrix);
- cout << "По критерию Вальда вам нужно выбрать стратегию № " << Wald << endl;
- int Sevidj = _tSevidj(r1, r2,matrix);
- cout << "По критерию Сэвиджа вам нужно выбрать стратегию № " << Sevidj << endl;
- int Gurvic = _tGurvic(r1, r2,matrix);
- cout << "По критерию Гурвица вам нужно выбрать стратегию № " << Gurvic << endl;
- int Baies = _tBaies(r1, r2,matrix);
- cout << "По критерию Байеса вам нужно выбрать стратегию № " << Baies << endl;
- for(int i = 0;i<r1;i++)
- free(matrix[i]);
- free(matrix);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement