Geradot345

маис4

Oct 10th, 2021 (edited)
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.54 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. void risc(float a[10][10], int m, int n, float b[10][10]) {
  8. int i, j;
  9. float max[10], maxim;
  10. for (j = 0; j < n; j++) {
  11. maxim = 0;
  12. for (i = 0; i < m; i++) {
  13. if (a[i][j] > maxim) { maxim = a[i][j]; }
  14. }
  15. max[j] = maxim;
  16. }
  17. for (j = 0; j < n; j++) {
  18. for (i = 0; i < m; i++) {
  19. b[i][j] = max[j] - a[i][j];
  20. }
  21. }
  22. }
  23.  
  24. void baies(float a[10][10], float p[10], int m, int n, ofstream& output) {
  25. float l[10];
  26. int i, j, max_i=0;
  27. float max=0;
  28. for (i = 0; i < m; i++) {
  29. l[i] = 0;
  30. for (j = 0; j < n; j++) {
  31. l[i] += a[i][j] * p[j];
  32. }
  33. if (l[i] > max) { max = l[i]; max_i = i; }
  34. }
  35. cout << "Наилучшее решение по критерию Байеса: R[" << max_i + 1 << "]" << endl << "R[" << max_i + 1 << "]=" << max << endl;
  36. output << "Наилучшее решение по критерию Байеса: R[" << max_i + 1 << "]" << endl << "R[" << max_i + 1 << "]=" << max << endl;
  37. }
  38.  
  39. void vald(float a[10][10], int m, int n, ofstream& output) {
  40. float max=0, min;
  41. int i, j, max_i;
  42. for (i = 0; i < m; i++) {
  43. min = 1;
  44. for (j = 0; j < n; j++) {
  45. if (a[i][j] < min) { min = a[i][j]; }
  46. }
  47. if (min > max) { max = min; max_i = i; }
  48. }
  49. cout << "Наилучшее решение по критерию Вальда: R[" << max_i + 1 << "]" << endl << "V[" << max_i + 1 << "]=" << max << endl;
  50. output << "Наилучшее решение по критерию Вальда: R[" << max_i + 1 << "]" << endl << "V[" << max_i + 1 << "]=" << max << endl;
  51. }
  52.  
  53. void sevidg(float b[10][10], int m, int n, ofstream& output) {
  54. float min = 1, max;
  55. int i, j, min_i;
  56. for (i = 0; i < m; i++) {
  57. max = 0;
  58. for (j = 0; j < n; j++) {
  59. if (b[i][j] > max) { max = b[i][j]; }
  60. }
  61. if (max < min) { min = max; min_i = i; }
  62. }
  63. cout << "Наилучшее решение по критерию Сэвиджа: R[" << min_i + 1 << "]" << endl << "S[" << min_i + 1 << "]=" << min << endl;
  64. output << "Наилучшее решение по критерию Сэвиджа: R[" << min_i + 1 << "]" << endl << "S[" << min_i + 1 << "]=" << min << endl;
  65. }
  66.  
  67. void gurvi(float a[10][10], float k, int m, int n, ofstream& output) {
  68. float min, max;
  69. float max_g=0;
  70. int i, j, max_i;
  71. for (i = 0; i < m; i++) {
  72. min = 1;
  73. max = 0;
  74. for (j = 0; j < n; j++) {
  75. if (a[i][j] > max) { max = a[i][j]; }
  76. if (a[i][j] < min) { min = a[i][j]; }
  77. }
  78. if ((k * min + (1 - k) * max) > max_g) {
  79. max_g = k * min + (1 - k) * max;
  80. max_i = i;
  81. }
  82. }
  83. cout << "Наилучшее решение по критерию пессимизма-оптимизма Гурвица: R[" << max_i + 1 << "]" << endl << "G[" << max_i + 1 << "]=" << max_g << endl;
  84. output << "Наилучшее решение по критерию пессимизма-оптимизма Гурвица: R[" << max_i + 1 << "]" << endl << "G[" << max_i + 1 << "]=" << max_g << endl;
  85. }
  86.  
  87. int main()
  88. {
  89. ofstream outp("output.txt");
  90. int i, j, m, n;
  91. setlocale(LC_ALL, "Russian");
  92. cout << "Введите Кол-во вариантов решения:";
  93. outp << "Введите Кол-во вариантов решения:";
  94. cin >> m;
  95. outp << m << endl;
  96. cout << "Введите Кол-во вариантов обстановки:";
  97. outp << "Введите Кол-во вариантов обстановки:";
  98. cin >> n;
  99. outp << n << endl;
  100. float a[10][10], b[10][10];
  101. cout << "Введите данные таблицы эффективности:" << endl;
  102. outp << "Введите данные таблицы эффективности:" << endl;
  103. for (i = 0; i <= m - 1; i++) {
  104. for (j = 0; j <= n - 1; j++) {
  105. cout << "Введите А[" << i + 1 << "][" << j + 1 << "]=";
  106. outp << "Введите А[" << i + 1 << "][" << j + 1 << "]=";
  107. cin >> a[i][j];
  108. outp << a[i][j] << endl;
  109. }
  110. }
  111. for (i = 0; i < m; i++) {
  112. for (j = 0; j < n; j++) {
  113. b[i][j] = 0;
  114. }
  115. }
  116. risc(a, m, n, b);
  117. cout << "Получившаяся таблица рисков:"<<endl;
  118. outp<< "Получившаяся таблица рисков:" << endl;
  119. for (i = 0; i < m; i++) {
  120. for (j = 0; j < n; j++) {
  121. cout << b[i][j] << " ";
  122. outp << b[i][j] << " ";
  123. }
  124. cout << endl;
  125. outp << endl;
  126. }
  127. float p[10];
  128. cout << "Введите вероятности различных вариантов обстановки:" << endl;
  129. outp << "Введите вероятности различных вариантов обстановки:" << endl;
  130. for (j = 0; j < n; j++) {
  131. cout << "P[" << j+1 << "]=";
  132. cin >> p[j];
  133. outp << "P[" << j + 1 << "]=";
  134. outp << p[j];
  135. }
  136. cout << "Введите значение линии поведения:";
  137. outp << "Введите значение линии поведения:";
  138. float k;
  139. cin >> k;
  140. outp << k << endl;
  141. cout << endl;
  142. baies(a, p, m, n, outp);
  143. vald(a, m, n, outp);
  144. sevidg(b, m, n, outp);
  145. gurvi(a, k, m, n, outp);
  146. outp.close();
  147. }
Add Comment
Please, Sign In to add comment