Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- using namespace std;
- void risc(float a[10][10], int m, int n, float b[10][10]) {
- int i, j;
- float max[10], maxim;
- for (j = 0; j < n; j++) {
- maxim = 0;
- for (i = 0; i < m; i++) {
- if (a[i][j] > maxim) { maxim = a[i][j]; }
- }
- max[j] = maxim;
- }
- for (j = 0; j < n; j++) {
- for (i = 0; i < m; i++) {
- b[i][j] = max[j] - a[i][j];
- }
- }
- }
- void baies(float a[10][10], float p[10], int m, int n, ofstream& output) {
- float l[10];
- int i, j, max_i=0;
- float max=0;
- for (i = 0; i < m; i++) {
- l[i] = 0;
- for (j = 0; j < n; j++) {
- l[i] += a[i][j] * p[j];
- }
- if (l[i] > max) { max = l[i]; max_i = i; }
- }
- cout << "Наилучшее решение по критерию Байеса: R[" << max_i + 1 << "]" << endl << "R[" << max_i + 1 << "]=" << max << endl;
- output << "Наилучшее решение по критерию Байеса: R[" << max_i + 1 << "]" << endl << "R[" << max_i + 1 << "]=" << max << endl;
- }
- void vald(float a[10][10], int m, int n, ofstream& output) {
- float max=0, min;
- int i, j, max_i;
- for (i = 0; i < m; i++) {
- min = 1;
- for (j = 0; j < n; j++) {
- if (a[i][j] < min) { min = a[i][j]; }
- }
- if (min > max) { max = min; max_i = i; }
- }
- cout << "Наилучшее решение по критерию Вальда: R[" << max_i + 1 << "]" << endl << "V[" << max_i + 1 << "]=" << max << endl;
- output << "Наилучшее решение по критерию Вальда: R[" << max_i + 1 << "]" << endl << "V[" << max_i + 1 << "]=" << max << endl;
- }
- void sevidg(float b[10][10], int m, int n, ofstream& output) {
- float min = 1, max;
- int i, j, min_i;
- for (i = 0; i < m; i++) {
- max = 0;
- for (j = 0; j < n; j++) {
- if (b[i][j] > max) { max = b[i][j]; }
- }
- if (max < min) { min = max; min_i = i; }
- }
- cout << "Наилучшее решение по критерию Сэвиджа: R[" << min_i + 1 << "]" << endl << "S[" << min_i + 1 << "]=" << min << endl;
- output << "Наилучшее решение по критерию Сэвиджа: R[" << min_i + 1 << "]" << endl << "S[" << min_i + 1 << "]=" << min << endl;
- }
- void gurvi(float a[10][10], float k, int m, int n, ofstream& output) {
- float min, max;
- float max_g=0;
- int i, j, max_i;
- for (i = 0; i < m; i++) {
- min = 1;
- max = 0;
- for (j = 0; j < n; j++) {
- if (a[i][j] > max) { max = a[i][j]; }
- if (a[i][j] < min) { min = a[i][j]; }
- }
- if ((k * min + (1 - k) * max) > max_g) {
- max_g = k * min + (1 - k) * max;
- max_i = i;
- }
- }
- cout << "Наилучшее решение по критерию пессимизма-оптимизма Гурвица: R[" << max_i + 1 << "]" << endl << "G[" << max_i + 1 << "]=" << max_g << endl;
- output << "Наилучшее решение по критерию пессимизма-оптимизма Гурвица: R[" << max_i + 1 << "]" << endl << "G[" << max_i + 1 << "]=" << max_g << endl;
- }
- int main()
- {
- ofstream outp("output.txt");
- int i, j, m, n;
- setlocale(LC_ALL, "Russian");
- cout << "Введите Кол-во вариантов решения:";
- outp << "Введите Кол-во вариантов решения:";
- cin >> m;
- outp << m << endl;
- cout << "Введите Кол-во вариантов обстановки:";
- outp << "Введите Кол-во вариантов обстановки:";
- cin >> n;
- outp << n << endl;
- float a[10][10], b[10][10];
- cout << "Введите данные таблицы эффективности:" << endl;
- outp << "Введите данные таблицы эффективности:" << endl;
- for (i = 0; i <= m - 1; i++) {
- for (j = 0; j <= n - 1; j++) {
- cout << "Введите А[" << i + 1 << "][" << j + 1 << "]=";
- outp << "Введите А[" << i + 1 << "][" << j + 1 << "]=";
- cin >> a[i][j];
- outp << a[i][j] << endl;
- }
- }
- for (i = 0; i < m; i++) {
- for (j = 0; j < n; j++) {
- b[i][j] = 0;
- }
- }
- risc(a, m, n, b);
- cout << "Получившаяся таблица рисков:"<<endl;
- outp<< "Получившаяся таблица рисков:" << endl;
- for (i = 0; i < m; i++) {
- for (j = 0; j < n; j++) {
- cout << b[i][j] << " ";
- outp << b[i][j] << " ";
- }
- cout << endl;
- outp << endl;
- }
- float p[10];
- cout << "Введите вероятности различных вариантов обстановки:" << endl;
- outp << "Введите вероятности различных вариантов обстановки:" << endl;
- for (j = 0; j < n; j++) {
- cout << "P[" << j+1 << "]=";
- cin >> p[j];
- outp << "P[" << j + 1 << "]=";
- outp << p[j];
- }
- cout << "Введите значение линии поведения:";
- outp << "Введите значение линии поведения:";
- float k;
- cin >> k;
- outp << k << endl;
- cout << endl;
- baies(a, p, m, n, outp);
- vald(a, m, n, outp);
- sevidg(b, m, n, outp);
- gurvi(a, k, m, n, outp);
- outp.close();
- }
Add Comment
Please, Sign In to add comment